elasticsearch5使用ik自定义分词


elasticsearch中默认分词为standard分词,根本无法满足中文分词的需要,需要另行安装中文分词插件。 

安装ik分词器过程如下:

一、下载安装IK分词插件

 ik分词插件  https://github.com/medcl/elasticsearch-analysis-ik/  (github地址)

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.3/elasticsearch-analysis-ik-6.2.3.zip

可将v6.2.3 替换为你所使用的elasticsearch版本。


二、重启ES

     ps -ef | grep  elasticsearch   

     kill -9  {pid}

扫描二维码关注公众号,回复: 167408 查看本文章

     ./bin/elasticsearch  -d

     看下ik的分词效果 ,"中华人民共和国"能被准确的分为 "中华人民共和国" 、 "中华人民"、"中华"、"华人" 、"人民共和国" 等

   

 

下面这个例子中,ik分词器不能按照我们的意愿正确的分析出。

"屌丝公寓" 中屌丝被分为了两个词 。这种网络流行词汇ik无法准确的切分出,如确需分出就需要我们来自定义词库了 。



三、扩展自定义词库 

     删除 elasticsarch/config/目录下的analysis-ik  ,在elasticsearch/plugins/analysis-ik/ 中 创建config目录,再在这个config目录中新建IKAnalyzer.cfg.xml 配置文件。

     cd  elasticsearch/plugins/analysis-ik/

     mkdir  config 

     cd config   

     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">custom/my.dic</entry>
        <!--用户可以在这里配置自己的扩展停止词字典-->
      <entry key="ext_stopwords"></entry>
       <!--用户可以在这里配置远程扩展字典 -->
      <!-- <entry key="remote_ext_dict">words_location</entry> -->
      <!--用户可以在这里配置远程扩展停止词字典-->
      <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
  </properties>

 其中 custom/my.dic 是我们后面需要新建的自定义词库文件 (每行配置一个词汇)

    mkdir custom 

   vi my.dic   随便加入写东西,如一些网络流行词汇,

    屌丝

    卖萌

   :x 保存 

   完了后,我们再次重启es, 再看下效果。




ok,  屌丝  、卖萌 都能够准确地分出了,说明我们的自定义词库已生效了。



猜你喜欢

转载自blog.csdn.net/jasnet_u/article/details/80220169