带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(1)

简介: 带你读《Elastic Stack 实战手册》之35:——3.4.2.17.4.Analyzers / Custom analyzers(1)

3.4.2.17.4.Analyzers / Custom analyzers


创作人:孙宁宇

审稿人:欧阳楚才

 

Elasticsearch 通过倒排索引实现全文检索,倒排索引中最核心的部分就是分词。为了构建这个倒排索引就需要我们把一个完整的句子通过某一种方式进行切割得到单词集合,而这个方式就是本节要介绍的分词器 Analyzer。例如 Avengers: Infinity War 通过分词后,我们就把拆解的3个单词 avengers,infinity 及 war 添加到倒排索引中。在后面的搜索阶段你就可以使用这3个单词来对文档进行匹配。

 

分词器在写入阶段

 

一个文本字段在写入 Elasticsearch 之前,分词器首先会对文本进行一系列的处理把文本进行分解。分词器就像管道一样,按照执行顺序依次把文本进行流转,处理完成后的文本将会被分解为一个一个的 token,而这些 token 就是组成倒排索引的基础。通过下图可以看出我们输入的字符串分别经历了 Character filters,Tokenizer,Token filters 三个阶段的操作,最后将分词结果 [ "heya", "we're", "elastic" ] 写入倒排索引中。


image.png


分词器在搜索阶段

 

默认情况下,在对 text 字段查询时使用的分词器就是字段写入时设置的分词器,这样做的目的就是能尽可能的让分词可以正确匹配。当然我们也可以指定和写入不一样的分词器作为搜索分词器。查询的字段内容首先按照设置的分词器进行分词操作,根据分词的结果在倒排索引中进行匹配。


image.png


图中的例子我们是想查询电影名称和 X-Man 相关的文档,首先要做的是对 X-Man 进行分词,由于我们在没有指定分词器,Elasticsearch 默认会使用 standard 类型的分词器进行解析,这个分词器的细节内容稍后的内容会进行介绍,这里你可以看到通过 standard 分词器的处理后,我们要搜索的内容 X-Man 会被分解成 X 和 Man 两个词,两个词分别在倒排索引中匹配,任何一个匹配上的文档都将会返回。

 


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.17.Text analysis, settings 及 mappings——3.4.2.17.4.Analyzers / Custom analyzers(2) https://developer.aliyun.com/article/1229775

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
2月前
|
人工智能 监控 数据可视化
什么是低代码开发平台?2025年最热门的10大低代码开发平台盘点!
低代码开发平台通过可视化拖拽、模型驱动等方式,大幅减少手工编码,提升应用开发效率。当下更是结合AI能力,自动生成应用,组件,图表,进一步加快应用软件的开发效率落地。
|
2月前
|
Java Linux Apache
在CentOS服务器上编译并部署NiFi源码
部署Apache NiFi在CentOS上是一个涉及细节的过程,需要注意Java环境、源码编译、配置调整等多个方面。遵循上述步骤,可以在CentOS服务器上成功部署和配置Apache NiFi,从而高效地处理和分发数据。
182 17
|
2月前
|
存储 自然语言处理 Java
全球语言无障碍:Unicode标准解读与技术演进史
Unicode是全球字符统一编码标准,旨在为世界上所有文字、符号及emoji分配唯一码点,解决多语言乱码问题。它兼容ASCII,支持超14万字符,覆盖现代与古文字,通过UTF-8、UTF-16等编码方案实现跨平台信息交换,是互联网、操作系统和多语言通信的基础。
622 2
|
4月前
|
人工智能 供应链 数据可视化
工作流梳理工具实战教程:手把手教你绘制第一张自动化流程图
本文剖析了团队因流程混乱导致重复劳动和效率低下的问题,提出通过工作流梳理提升协作效率的解决方案。总结了流程梳理的六大核心需求,并深度测评了6款主流工具,国内有板栗看板那,国外有kiss flow结合团队规模与需求提供选型建议,助力企业高效落地流程优化。
node Express.js node:internal/modules/cjs/loader:988 throw err; ^ Error: Cannot find module ‘
node Express.js node:internal/modules/cjs/loader:988 throw err; ^ Error: Cannot find module ‘
1609 0
node Express.js node:internal/modules/cjs/loader:988 throw err; ^ Error: Cannot find module ‘
|
数据安全/隐私保护 Windows
windows里怎么杀死一个进程?
windows里怎么杀死一个进程?
772 0
|
数据库 开发者 微服务
单元化架构的设计要素
单元化架构的设计要素
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习参数初始化(一)Xavier初始化 含代码
深度学习参数初始化(一)Xavier初始化 含代码
681 2
|
Android开发
android下got表HOOK实现
通过基于got表进行实现android下的hook实现。
737 0

热门文章

最新文章