分词(Analysis):将文本切分为一系列单词的过程,比如 "美国留给伊拉克的是个烂摊子吗?"经过分词后的后果为:美国、伊拉克、烂摊子。

分词器(Analyzer):elasticsearch中执行的分词的主体,官方把分词器分成三个层次:

Character Filters:针对文档的原始文本进行处理,例如将印度语的阿拉伯数字"0 12345678 9"转换成拉丁语的阿拉伯数字"0123456789",或者去除HTML中的特殊标记符号,Character Filters可以有零或多个,安装顺序应用;

Tokenizer:核心,将文档的原始文本按照一定规则切分为单词,Tokenizer只能有一个;

Token Filter:对经过Tokenizer处理过后的单词进行二次加工,比如转换为小写,Token Filter也可以有多个,按顺序依次调用.

三者的调用顺序:Character Filters--->Tokenizer--->Token Filter


 Analyze API

es提供了endpoint为_analyze的语句来测试分词效果,你可以指定索引中的字段或者显式输入文本来测试分词效果


 预定义的分词器

es自带的分词器如下,默认是standard,创建索引的mapping(类似于表结构)时候可指定

因为文档中的每个字段都会建立倒排索引,所以你也可以在创建索引的mapping时指定每个字段的分词器

下面简单的测试一下Standard、Simple、whitespace这三个分词器分词效果,其余的就不测试了。

其余的分词器留给大家自己去测试,分词器的选择还是很重要的,按照你想要的切分方式切分文本得到的分词效果,既可以节省空间,又可以较好的解决搜索问题。尤其是中文,如何切分是个难点,比如文本"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"如果经过默认的分词器standard analyzer切分的话,会得到"中、国、驻、洛、杉、矶、领、事、馆、遭、亚、裔、男、子、枪、击、嫌、犯、已、自、首",这显然不是我们想要的分词效果;再比如,"乒乓球拍卖完了",是切分为"乒乓球/拍卖/完了"还是切分为"乒乓球拍/卖完了"。这里分享一个常用的中文分词器:ik_smart,它能较好的切分中文及英文文本,支持自定义词库,开源分词器 ik 的github:https://github.com/medcl/elasticsearch-analysis-ik,安装iksmart分词器如下:

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.0/elasticsearch-analysis-ik-6.3.0.zip

注意: 替换6.3.0为自己安装的elasticsearch版本,安装好后的ik插件在/elasticsearch/plugins/目录下,接着就可以直接指定分词器为ik_smart了,ik里面提供了ik_smart、ik_max_word,大家可以通过如下测试下两种分词器分词效果


 分词使用时机

1.创建或更新文档时候,es会对相应的文档数据进行分词处理,比如你某个索引字段类型为text,那么插入一条文档时候就会对该字段进行分词处理,维护该字段文本内容的倒排索引,这种我们成为索引时分词;

2.查询时候,会对你的查询文本进行分词,比如你要查询"苹果手机",则会分词为"苹果、手机"两个单词;

我们可以在创建索引时候指定该字段的分词器:

创建索引mapping时候指定该字段的分词器

也可以在查询时指定分词器:

查询时指定分词器

实际使用时候我们需要明确文档中的某个字段是否要分词,如果没必要分词,请关闭,这能节省一定的空间及提高es的写入效率,同时实际生产中的具体的分词器选择要经过自己的实际测试。


 上一篇: Elastic Search之倒排索引

 下一篇: Elastic Search之自定义Mapping

  参考:es官方文档https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

Elastic Search之分词相关推荐

  1. Elastic search常用分词 和 多字段搜索优化

    分词器 ES的分词器把文本解析为一个一个的词,写入倒排索引中 filter过滤器 lemmagen 词性还原 stop 停顿词 shingle 临近词n个作为一组查询 analyzer分词器 stan ...

  2. Elastic Search:(二)分词器

    目录 1.分词器 1.1 内置分词器的介绍和使用 1.1.1 概念 1.1.2 standard 1.1.3 simple 1.1.4 whitespace 1.1.5 stop ​ 1.1.6 pa ...

  3. debian 10 buster 安装配置 elastic search 和 中文, 拼音分词

    debian 10 buster 安装配置 es 和 中文, 拼音分词 安装 测试 配置 分词 IK 分词器 拼音分词 一个完整的动态映射模板(包含geo, pinyin, IK) 安装 1, 安装j ...

  4. Java微服务篇4——Elastic search

    Java微服务篇4--Elastic search 1.Elastic search安装配置 Elastic search官方:https://www.elastic.co/cn/products/e ...

  5. Elastic Search Java API(文档操作API、Query DSL查询API)、es搜索引擎实战demo

    elastic search实战小demo:https://github.com/simonsfan/springboot-quartz-demo,分支:feature_es 之前在 Elastic ...

  6. 基于Elastic Search的推荐系统“召回”策略

    当我们打开一个资讯APP刷新闻时,有没有想过,系统是如何迅速推送给我们想看的内容?资讯APP背后有一个巨大的内容池,系统是如何判断要不要将某条资讯推送给我们的呢?这就是今天想跟大家探讨的问题--推荐系 ...

  7. 记录阿里云Elastic Search实例使用经验

    记录阿里云Elastic Search实例使用经验 购买服务器 购买完成开始设置并使用 1.打开实例管理页面 2.设置下kibana语言方便操作 3.登录kibana可视化管理平台 进入索引管理查看索 ...

  8. 集成Elastic Search实现文档的全文搜索功能实战

    技术选型 该领域已被Lucene独占,几乎无竞争对手. 但是直接使用Lucene非常复杂,因此出现了两个组件,一是solr,二是elastic search,elastic search流行度更高,但 ...

  9. Elastic search入门到集群实战操作详解(原生API操作、springboot整合操作)-step1

    Elastic search入门到集群实战操作详解(原生API操作.springboot整合操作)-step2 https://blog.csdn.net/qq_45441466/article/de ...

最新文章

  1. 分享一套超棒的iOS “空状态” (empty state) 界面UI设计
  2. 聚集索引和非聚集索引(整理)
  3. SAP UI5 DatePicker setDateValue(tempString)
  4. pca 主成分分析_六分钟的主成分分析(PCA)的直观说明。
  5. 2014/5/25 多校
  6. 目前计算机应用最广泛的区域是,自考《计算机应用基础》试题练习(一)
  7. Linux进程实践(3) --进程终止与exec函数族
  8. Java代码发送POST请求
  9. php 实现 word 转为 图片
  10. 国内电波钟和石英钟表相比有何优势?
  11. 成都理工计算机考研很难吗,成都理工大学考研难吗?一般要什么水平才可以进入?...
  12. arduino控制步进电机和舵机
  13. 安装GitExtentions KDiff3已配置为合并工具,kdiff3的路径未配置
  14. html页面栅格系统,超好用的网页栅格化工具: GridGuide
  15. canvas将彩色图片变为灰度图片理解问题
  16. 用cmd 改电脑ip
  17. 联邦学习笔记-《Federated Machine Learning: Concept and Applications》论文翻译个人笔记
  18. 关于c基础实现简易计算器的代码(加减乘除)
  19. Fedora 24 Linux 环境下实现 Infinality 字体渲染增强及 Java 字体渲染改善的方法(修订)...
  20. 强大的虚拟音频器:Loopback for Mac

热门文章

  1. 程序人生——我已经努力了七年
  2. 2015年中国网络管理技术大会落幕 锐捷RIIL摘获“IT运维管理首选品牌”
  3. 解决UHD620,630等集显运行Solidworks卡顿 (点击特征导致描边卡死)
  4. PE导入表和IAT表的原理及工作关系
  5. 入行软件测试3个月,每天平平无奇,感觉在浪费时间怎么办
  6. 参加Oracle认证的两种考试方式
  7. 【进阶篇】全流程学习《20天掌握Pytorch实战》纪实 | Day10 | 高阶API示范
  8. 03.19.03-test 感谢百万,乔恩·斯基特!
  9. ios沙箱软件_iOS app ipa 与 沙盒
  10. 注册公司租房要求,租房可以作为公司注册登记公司吗?