说明:本篇文章讲述elasticsearch分词器插件的安装,热词库中止词库的拓展,文章后面提到elasticsearch ,都是以es简称。html
如下分词器的安装以ik分词器和pinyin分词器为例说明,使用的操做系统是Linux,使用的分词器器版本是6.5.4版本,对应的es版本也是6.5.4(写这篇文章时对应最新es是7.2版本),这里须要强调的是分词器插件和es版本必定要一致,不然容易致使问题,好比,java
个人pinyin分词器最先使用的是6.5.2,以为与es版本相差不远,应该能支持,实际安装后,由于pinyin分词器版本问题致使es启动失败。mysql
一、ik分词器的安装(Linux)git
下载6.5.4版本的ik分词器,下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zipgithub
安装:web
1.1 、将分词器拉取到es安装所在服务器的es安装主目录的{ES_HOME}/plugins 目录下sql
1.二、解压ik分词器 unzip elasticsearch-analysis-ik-6.5.4.zip -d ik服务器
1.三、重启es服务器微信
1.四、执行命令 cd {ES_HOME}/logs 切换到日志目录,tail -1000f elasticsearch.log 看下是否日志报错,没有报错说明启动正常,安装插件成功。elasticsearch
二、ik分词器扩展
2.一、切换到刚刚安装的ik分词器插件配置目录目录 cd {ES_HOME}/plugins/ik/config
2.二、执行ls 命令能够看到,如下文件列表:extra_main.dic extra_single_word.dic extra_single_word_full.dic extra_single_word_low_freq.dic extra_stopword.dic IKAnalyzer.cfg.xml main.dic preposition.dic quantifier.dic stopword.dic suffix.dic surname.dic
2.三、以上看到的.dic结尾的 文件,是ik的一些默认词库,实际上你能够打开修改默认词库,可是须要重建索引,而且从新导入数据才会生效。
2.四、这里比较重要的文件是IKAnalyzer.cfg.xml,执行 vi IKAnalyzer.cfg.xml 打开文件,能够看到以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户能够在这里配置本身的扩展字典 -->
<entry key="ext_dict"></entry>
<!--用户能够在这里配置本身的扩展中止词字典-->
<entry key="ext_stopwords"></entry>
<!--用户能够在这里配置远程扩展字典 -->
<entry key="remote_ext_dict">http://deploy_ip:port/myweb/myHotDic.txt</entry>
<!--用户能够在这里配置远程扩展中止词字典-->
<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>
这里能够添加本身拓展字典,也能够远程扩展,这里结合业务逻辑拓展远程字典,这样就能够经过地址直接访问这些字典,远程拓展字典能够经过web服务来维护,配置好后,重启es,使得配置生效。
重启后, 在新增热词字段,不须要重启,但时有个问题,就是对于已经同步入库的(即历史同步的数据),新增长的热词没法生效。
三、拼音分词器安装
下载6.5.4版本的pinyini分词器,下载地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v6.5.4/elasticsearch-analysis-pinyin-6.5.4.zip
1.1 、将分词器拉取到es安装所在服务器的es安装主目录的{ES_HOME}/plugins 目录下
1.二、解压ik分词器 unzip elasticsearch-analysis-pinyin-6.5.4.zip -d pinyin
1.三、重启es服务器
1.四、执行命令 cd {ES_HOME}/logs 切换到日志目录,tail -1000f elasticsearch.log 看下是否日志报错,没有报错说明启动正常,安装插件成功。
结语:分词器虽好,可是了解一些分词器特定是必要,好比,ik分词器将"普通高中"分隔为一个词,这样若是搜索内容中包含这个,搜索"高中"这个词是搜索不到的,可是若是,内容里面包含”普通的高中“,那么搜索”高中“就能够搜索到这条内容。
另外,分词器拓展热词库在web服务里面维护终究须要人肉去作的,若是可以在搜索过程当中自动提取热词而且拓展ik不存在的,而又须要的热词就完美了
相关文章:使用logstash同步mysql数据到elasticsearch、elasticsearch相关性打分背后的理论
技术合做:
qq:281414283
微信:so-so-life