ELK--Elasticsearch 安装 ik分词器 插件
分词
把一段文字的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作。
默认的中文分词是将每个字看成一个词,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。
Elasticsearch内置分词器
Standard - 默认分词器,按词切分,小写处理
Simple - 按照非字母切分(符号被过滤), 小写处理
Stop - 小写处理,停用词过滤(the,a,is)
Whitespace - 按照空格切分,不转小写
Keyword - 不分词,直接将输入当作输出
Patter - 正则表达式,默认\W+(非字符分割)
Language - 提供了30多种常见语言的分词器
Customer Analyzer 自定义分词器
ik分词器
IK有两种颗粒度的拆分:
ik_smart
: 会做最粗粒度的拆分ik_max_word
: 会将文本做最细粒度的拆分
一、下载ik分词器
IK分词器的版本要你安装ES的版本一致
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.1/elasticsearch-analysis-ik-6.4.1.zip
二、解压并将文件复制到 es的安装目录/plugin/ik中
tar -xvf elasticsearch-analysis-ik-6.4.1.zip
文件结构
三、重启ElasticSearch
四、测试效果
如果不符合预期,ik分词器支持自定义词库,例如我这里[诸葛小明]是一个人名,我可以自定义词库。
(1)在原有词库上改造,修改默认词库文件main.doc
(3)新词库文件:新增词库文件my.dic,往文件添加自己的分词,注意分行。然后修改ik/config目录下的IKAnalyzer.cfg.xml文件,改成自己的词库文件。
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!‐‐用户可以在这里配置自己的扩展字典 ‐‐>
<entry key="ext_dict">my.dic</entry>
<!‐‐用户可以在这里配置自己的扩展停止词字典‐‐>
<entry key="ext_stopwords"></entry>
</properties>
改好之后重启es即可生效。
修改之后效果: