重生之我们在ES顶端相遇第10 章- 分分分词器的基本使用

news2024/11/22 15:25:49

文章目录

      • 思维导图
      • 0. 前言
      • 1. 光速上手
        • 1.1 指定分词器
        • 1.2 测试分词器
      • 2. 分词流程(重要)
        • 2.1 基本介绍
        • 2.2 深入如何测试分词器
      • 3. 自定义一个简单的分词器

思维导图

在这里插入图片描述

0. 前言

分词器在 ES 搜索使用中非常关键,一个好的分词器能够提高搜索的质量,让用户搜索到其想要的内容。
下面我将带大家从整体了解分词器。

1. 光速上手

1.1 指定分词器
DELETE test8
PUT test8
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "whitespace"
      }
    }
  }
}

test8 索引的 title 字段,分词器为 whitespace

1.2 测试分词器
POST _analyze
{
  "analyzer": "whitespace",
  "text": "hello world"
}

2. 分词流程(重要)

2.1 基本介绍

ES 分词可以包含:

  1. 0个或多个 character filters
  2. 有且仅 1 个 tokenizer
  3. 0个或多个 token filters

工作流程如下:
在这里插入图片描述

  • character filters: 对输入进行预处理,比如删除 html 元素,比如将表情符号映射为文本
  • tokenizer: 分词器,上面说到的 standard,whitespace 都属于分词器
  • token filters: 对分词后的结果进行处理。例如输入 Is this déja vu, 如果按照空格分词的话,会被分为 Is, this, déja, vu。我们可以设置 asciifolding token filters, 将 déja, 转换为 deja
2.2 深入如何测试分词器
POST _analyze
{
	"char_filter": ["html_strip", {
		"type": "mapping",
		"mappings": [
			"😂 => happy"
		]
	}],
	"tokenizer": "standard",
	"filter": ["lowercase", "asciifolding"],
	"text": "Is this déja vu? 😂 <b>Important</b>"
}
  • html_strip 用于去掉 html 元素
  • mapping 则是将表情转换为文本
  • standard 用于分词
  • lowercase 用于将所有的大写转换为小写
  • asciifolding 用于将 Unicode 字符转换为 ASCII 字符
{
  "tokens" : [
    {
      "token" : "is",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "<ALPHANUM>",
      "position" : 0
    },
    {
      "token" : "this",
      "start_offset" : 3,
      "end_offset" : 7,
      "type" : "<ALPHANUM>",
      "position" : 1
    },
    {
      "token" : "deja",
      "start_offset" : 8,
      "end_offset" : 12,
      "type" : "<ALPHANUM>",
      "position" : 2
    },
    {
      "token" : "vu",
      "start_offset" : 13,
      "end_offset" : 15,
      "type" : "<ALPHANUM>",
      "position" : 3
    },
    {
      "token" : "happy",
      "start_offset" : 17,
      "end_offset" : 19,
      "type" : "<ALPHANUM>",
      "position" : 4
    }
  ]
}

3. 自定义一个简单的分词器

DELETE test8
PUT test8
{
	"mappings": {
		"properties": {
			"name": {
				"type": "text",
				"analyzer": "my_custom_analyzer"
			}
		}
	},
	"settings": {
		"analysis": {
			"char_filter": {
				"cf_happy": {
					"type": "mapping",
					"mappings": ["😂 => happy"]
				}
			},
			"analyzer": {
				"my_custom_analyzer": {
					"type": "custom",
					"tokenizer": "standard",
					"char_filter": ["html_strip", "cf_happy"],
					"filter": ["lowercase", "asciifolding"]
				}
			}
		}
	}
}

测试分词器

POST test8/_analyze
{
  "analyzer": "my_custom_analyzer",
  "text": "😂 I Like Elasticsearch"
}

输出结果

{
  "tokens" : [
    {
      "token" : "happy",
      "start_offset" : 0,
      "end_offset" : 2,
      "type" : "<ALPHANUM>",
      "position" : 0
    },
    {
      "token" : "i",
      "start_offset" : 3,
      "end_offset" : 4,
      "type" : "<ALPHANUM>",
      "position" : 1
    },
    {
      "token" : "like",
      "start_offset" : 5,
      "end_offset" : 9,
      "type" : "<ALPHANUM>",
      "position" : 2
    },
    {
      "token" : "elasticsearch",
      "start_offset" : 10,
      "end_offset" : 23,
      "type" : "<ALPHANUM>",
      "position" : 3
    }
  ]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2091792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

进程间的通信(无名管道)

进程间通信 IPC InterProcess Communication 1.进程间通信方式 1.早期的进程间通信&#xff1a; 无名管道(pipe)、有名管道(fifo)、信号(signal) 2.system V PIC&#xff1a; 共享内存(share memory)、信号灯集(semaphore)、消息队列(message queue) 3.BSD: 套接字(socket) 2.无…

AI壁纸套装,单月变现7000+,手把手教你,别说你还不会

介绍 这种类型的手机壁纸&#xff0c;平板壁纸&#xff0c;电脑壁纸&#xff0c;甚至是手表壁纸&#xff0c;流量都很不错&#xff0c;尤其是深受一些女性的喜欢。 变现能力也不错&#xff0c;而且变现方式也多种多样。 今天就一步一步的教大家如何制作这种壁纸&#xff0c;怕…

本地部署 Flux.1 最强文生图大模型!Comfyui 一键安装

前言 最近&#xff0c;由前 Stability AI员工创立的黑森林实验室推出了开源文生图大模型–FLUX.1横空出世。 FLUX.1在文字生成、复杂指令遵循和人手生成上具备优势。以下是其生成图像示例&#xff0c;可以看到即使是生成大段的文字、多个人物&#xff0c;也没有出现字符、人手…

涉案财物管理系统|涉案财物全流程监测

涉案财物管理系统DW-S405系统基于物联网技术规范涉案财物管理流程&#xff0c;确保涉案财物的安全性、完整性和合法性&#xff1b;可以提高办案效率&#xff0c;减少办案成本&#xff0c;实现资源共享。 DW-S405可以深度整合大平台和物理存储区的整体一致性&#xff0c;实现对…

通信算法之229: 通信系统中的Eb/N0与SNR

通信系统中接收灵敏度是衡量系统可接收的最小信号电平。各个文章书籍中都给了接收灵敏度与SNR的关系。 但是做解调算法的工程师却在乎的是Eb/No&#xff0c;那么两者的关系什么&#xff1f;是不是都可以代表接收性能的好坏&#xff1f; Eb/No 在通信系统中&#xff0c;Eb/No 是…

带娃赚钱两不误,用AI做故事绘本,零成本轻松变现

01 利用Chatgpt生成故事脚本内容 AI Breakthroug 这一步我们可以将收集的爆款故事文案给到GPT进行改写&#xff0c;这里我重点展示如何通过提示词让GPT帮我们生成原创的故事脚本。 *▍**让GPT生成原创故事标题* 一开始不知道写什么主题故事的时候&#xff0c;这里我们可以…

报错:java: 不再支持源选项 5。请使用 8 或更高版本

Date: 2024.08.30 13:52:20 author: lijianzhan 电脑环境&#xff1a;Windows10 开发环境&#xff1a;JDK21 代码工具&#xff1a;IntelliJ IDEA 2024 一、问题 运行脚本控制台报错&#xff1a;java: 不再支持源选项 5。请使用 8 或更高版本。 二、原因 当前JDK版本比较高&…

【MySQL索引】4索引优化

索引优化 1 关联查询优化 左连接LEFT JOIN LEFT JOIN 右边是我们的关键点,一定需要建立索引 .这里是book的card 字段&#xff0c;type建不建索引无所谓。 ALTER TABLE book ADD INDEX Y ( card); #【被驱动表】&#xff0c;可以避免全表扫描 EXPLAIN SELECT SQL_NO_CACHE *…

2.5G网络(通常指2.5G以太网,即2500BASE-X)的网络变压器在设计和应用上有几个关键方面

信号传输和接收&#xff1a; 2.5G网络变压器主要用于以太网设备中&#xff0c;用于将信号从平衡转换为非平衡&#xff0c;或者进行阻抗匹配&#xff0c;确保信号能够在传输线和接收器之间有效地传输和接收。 频率范围&#xff1a; 这些变压器需要支持2.5G以太网的频率范围&…

Java 入门指南:Java 并发编程 —— 两万字详解 进程(Process)与线程(Thread)

线程和进程是操作系统中两个重要的概念&#xff0c;用于实现并发执行和多任务处理。 基础概念 进程 进程&#xff08;Process&#xff09;&#xff1a;进程是计算机中正在运行的程序的实例。它是操作系统分配系统资源的基本单位&#xff0c;包括程序代码、数据、打开的文件、…

Global Illumination_LPV Deep Optimizations

接上回&#xff0c;RSM优化技术介绍后&#xff0c;我们本部分主要看一下&#xff0c;光栅GI三部曲中的LPV&#xff0c;这个算法算是很巧妙了&#xff0c;算法思路基于RSM上拓展到世界空间&#xff0c;可以说很具学习和思考价值&#xff0c;之前也简单实现过Global Illumination…

【 html+css 绚丽Loading 】000028 九宫幻明轮

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

AI智能导诊小程序源码,在智能导诊系统中,自然语言处理技术的运用

概述 智能导诊基于医疗 AI 、自然语言处理技术&#xff0c;推出的在线导医分诊智能工具&#xff0c;覆盖导诊、智能问答、科普宣教等就医服务&#xff1b;智能导诊通过人体图、症状列表等形式进行疾病自测&#xff0c;快速推荐就诊科室、医生推荐。产品可应用于微信线上挂号、…

SQLi-LABS通关攻略【51-55关】

SQLi-LABS 51关 51关和50关一样&#xff0c;只是改为了单引号闭合 依旧有报错信息&#xff0c;可以使用报错注入 构造payload,得到数据库名 ?sort1 and updatexml(1,concat(1,database()),1)-- SQLi-LABS 52关 52关和50关一样&#xff0c;但是没有报错信息&#xff0c;所以报…

智慧监管:地理信息与遥感技术驱动下的社会治理新纪元

在信息化浪潮席卷全球的今天&#xff0c;智慧监管已成为推动社会治理现代化的关键力量。本文将深入剖析智慧监管的概念、技术基础、应用场景及其对社会发展的深远影响&#xff0c;探讨如何在新时代背景下&#xff0c;利用地理信息与遥感技术构建更加智慧、高效的监管体系。 智…

仿华为车机UI--图标从Workspace拖动到Hotseat同时保留图标在原来位置

基于Android13 Launcher3,原生系统如果把图标从Workspace拖动到Hotseat里则Workspace就没有了&#xff0c;需求是执行拖拽动作后&#xff0c;图标同时保留在原位置。 实现效果如下&#xff1a; 实现思路&#xff1a; 1.如果在workspace中拖动&#xff0c;则保留原来“改变图标…

【u盘还原教程】如何把启动u盘恢复回普通U盘

之前制作ubuntu启动盘装双系统 1、插入U盘&#xff0c;右键点击“此电脑”&#xff0c;选择“管理”&#xff0c;在“计算机管理”的面板中点击打开“磁盘管理”&#xff0c;会看到目前电脑上的所有磁盘&#xff0c;找到U盘的索引名&#xff08;如图标识&#xff0c;这里是“…

2024最新VMware17安装Windows10详细记录

本次将带来虚拟机VMware Workstation 17 pro安装Win10的教学&#xff0c;可用于各种软件测试&#xff0c;这里虽然只是示范了win10安装教学&#xff0c;实际上可以安装很多系统&#xff0c;步骤都差不多&#xff1b; 下载 一、下载虚拟机软件 下载方式一&#xff1a;官网下载…

虚拟机安装docker时yum错误及及解决方案

** Could not resolve host: mirrorlist.centos.org; 未知的错误 ** 出现这种错误&#xff0c;先尝试 ping www.baidu.com&#xff0c;然后再尝试 ping mirrorlist.centos.org 如果&#xff0c;baidu.com可以ping通&#xff0c;mirrorlist.centos.org 不能ping通&#xff0…

【三十四】springboot+easyRule初识规则引擎

代码场景&#xff1a;厂里有几个员工&#xff0c;现在厂长颁布了新的厂规关于薪资发放&#xff0c;如下&#xff1a; 1、加班时长超过80小时的&#xff0c;一个小时10块钱&#xff1b;不满80小时的&#xff0c;不算加班。2、上班打卡迟到3次以下的不扣钱&#xff0c;3次以上的一…