文章目录
ElasticSearch - 分词器介绍及中文分词器es-ik安装
1.分词器介绍及内置分词器
在了解分词器之前我们可以先了解一下ElasticSearch中的倒排索引结构,在这篇博客什么是倒排索引?中对倒排索引进行了比较详细的介绍,大家可以学习了解一下。
分词器的作用是把一段文本中的词按照一定规则切分,对词条进行标准化,不同的情景需要使用不同的分词器,不同分词器分词的规则也是不同的。 在创建索引时会用到分词器,在搜索时也会用到分词器,这两个地方要使用同一个分词器,否则可能会搜索不出结果。它主要包括三部分:
- character filter:分词之前的预处理,过滤掉HTML标签、特殊符号转换等。
- tokenizer:分词
- token filter:标准化
ElasticSearch中有一些内置分词器:
- standard 分词器:默认分词器,会将词汇单元转成小写形式并且去除停用词和标点符号,支持中文采用的方法为单字切分。
- simple分词器:首先会通过非字母字符来分割文本信息,然后将词汇单元统一为小写形式。该分词器会去除掉数字类型的字符。
- Whitespace分词器:仅仅是去除空格,对字符没有lowcase化,不支持中文;并且不对生成的词汇单元进行其他标准化处理。
- language分词器:特定语言的分词器,不支持中文。
2.中文分词器es-ik安装
ElasticSearch默认使用的标准分词器在处理中文的时候会把中文单词切分成一个一个的汉字,所以在很多时候我们会发现效果并不符合我们预期,尤其在我们使用中文文本切分之后本该为一个词语却成了单个的汉字,因此这里我们使用效果更佳的中文分词器es-ik。
es-ik的下载方式主要有两种,第一种是es从5.5版本之后可以通过./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.1/elasticsearch-analysis-ik-6.6.1.zip
下载es-ik
插件。
我们这里是通过手动去github
->elasticsearch-analysis-ik上下载对应的zip包,然后放至elasticsearch/plugins/ik
目录下,这里ik目录是我们自己手动创建的。由于下载的是zip包,所以我们需要通过unzip
命令解压缩。yum install -y unzip //若未安装unzip命令需要先安装 unzip elasticsearch-analysis-ik-6.6.1.zip
需要注意的是es-ik的版本选择需要根据对应的ElasticSearch版本去对应,这个大家可以参考es-ik在github上的介绍来下载。简单几步之后我们再去重新启动ElasticSearch,出现以下加载日志则成功安装es-ik中文分词器。
关于es-ik更多相关介绍,推荐大家参考这篇博客Elasticsearch之中文分词器插件es-ik(博主推荐)