ik与拼音分词器,拓展热词/中止词库

说明:本篇文章讲述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数据到elasticsearchelasticsearch相关性打分背后的理论

技术合做:

            qq:281414283

            微信:so-so-life

相关文章
相关标签/搜索