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

说明:本篇文章讲述elasticsearch分词器插件的安装,热词库停止词库的拓展,文章后面提到elasticsearch ,都是以es简称。

          以下分词器的安装以ik分词器和pinyin分词器为例说明,使用的操作系统是Linux,使用的分词器器版本是6.5.4版本,对应的es版本也是6.5.4(写这篇文章时对应最新es是7.2版本),这里需要强调的是分词器插件和es版本一定要一致,否则容易导致问题,比如,

          我的pinyin分词器最早使用的是6.5.2,觉得与es版本相差不远,应该能支持,实际安装后,因为pinyin分词器版本问题导致es启动失败。

1、ik分词器的安装(Linux)

     下载6.5.4版本的ik分词器,下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip

     安装:

            1.1 、将分词器拉取到es安装所在服务器的es安装主目录的{ES_HOME}/plugins 目录下

            1.2、解压ik分词器 unzip elasticsearch-analysis-ik-6.5.4.zip -d ik

            1.3、重启es服务器

            1.4、执行命令 cd {ES_HOME}/logs 切换到日志目录,tail -1000f elasticsearch.log 看下是否日志报错,没有报错说明启动正常,安装插件成功

2、ik分词器扩展

       2.1、切换到刚刚安装的ik分词器插件配置目录目录  cd {ES_HOME}/plugins/ik/config

       2.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.3、以上看到的.dic结尾的 文件,是ik的一些默认词库,实际上你可以打开修改默认词库,但是需要重建索引,并且重新导入数据才会生效。

      2.4、这里比较重要的文件是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,使得配置生效。

     重启后, 在新增热词字段,不需要重启,但时有个问题,就是对于已经同步入库的(即历史同步的数据),新增加的热词无法生效。

3、拼音分词器安装

     下载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.2、解压ik分词器 unzip elasticsearch-analysis-pinyin-6.5.4.zip -d pinyin

     1.3、重启es服务器

     1.4、执行命令 cd {ES_HOME}/logs 切换到日志目录,tail -1000f elasticsearch.log 看下是否日志报错,没有报错说明启动正常,安装插件成功。

结语:分词器虽好,但是了解一些分词器特定是必要,比如,ik分词器将"普通高中"分隔为一个词,这样如果搜索内容中包含这个,搜索"高中"这个词是搜索不到的,但是如果,内容里面包含”普通的高中“,那么搜索”高中“就可以搜索到这条内容。

          另外,分词器拓展热词库在web服务里面维护终究需要人肉去做的,如果能够在搜索过程中自动提取热词并且拓展ik不存在的,而又需要的热词就完美了

 

  相关文章:使用logstash同步mysql数据到elasticsearch

技术合作:

            qq:281414283

            微信:so-so-life

     

 

     

        

 

转载于:https://www.cnblogs.com/javato/p/11150653.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值