sanhutrees 发表于 2019-1-29 14:13:32

ES1.4 中文分词插件ik

  ES 官方只支持smartcn这个中文分词插件,是按照单个字进行索引。前端产品搜索时,凡是带这个关键字的都会被索引到。打个比方:搜索"苹果"关键词,凡是包含"苹"和"果"的title都会被索引到。所以为了这个需求,找一个第三方的中文分词插件.看了一下,国内有几款中分分词插件:ik、ansj和mmseg。最后我选择使用了ik。
        ES1.4 下安装ik,碰到了不少坑。最后终于搞定,所以分享一下ik的安装步骤。
        
  1. 下载es源代码,然后进行编译,将相应jar包复制到$ES_HOME/plugins/目录下。
  2. 下载ik配置文件,复制到$ES_HOME/config/目录下。
  3.修改elasticsearch.yml配置文件
  4.测试ik
  

  1.首先下载es源代码,并进行编译
wget --no-check-certificate
unzip master.zip
cdelasticsearch-analysis-ik-master
mvn clean install -Dmaven.test.skip=true   #编译过程,需要下载相应的jar包。所以喝一杯咖啡,慢慢等待...
将编译后的elasticsearch-analysis-ik-1.2.9.zip,解压缩,复制到$ES_HOME/plugins目录  相应jar包:
http://s3.运维网.com/wyfs02/M01/58/A9/wKiom1S3QOXgwvjLAAGh7vfa4x4734.jpg
  2. 下载ik配置文件,复制到$ES_HOME/config/目录下
https://github.com/davidbj/elasticsearch-rtf/archive/master.zip
unzip master.zip
将解压目录config/ik文件夹复制到$ES_HOME/config目录下  

  3. 更改$ES_HOME/config/elasticsearch.yml 配置文件
index:
analysis:                     
    analyzer:      
      ik:
          alias:
          type: org.elasticsearch.index.analysis.IkAnalyzerProvider
      ik_max_word:
          type: ik
          use_smart: false
      ik_smart:
          type: ik
          use_smart: true
#或
index.analysis.analyzer.ik.type : “ik”  最后重启elaticsearch服务

  

  4.测试:
curl -XPOST"
测试结果如下
{
tokens: [
{
token: text
start_offset: 2
end_offset: 6
type: ENGLISH
position: 1
}
{
token: 我
start_offset: 9
end_offset: 10
type: CN_CHAR
position: 2
}
{
token: 中国人
start_offset: 11
end_offset: 14
type: CN_WORD
position: 3
}
{
token: 中国
start_offset: 11
end_offset: 13
type: CN_WORD
position: 4
}
{
token: 国人
start_offset: 12
end_offset: 14
type: CN_WORD
position: 5
}
]
}  至此,es 的ik 插件已经安装配置完成~
  更多详细信息,请查看官方文档:https://github.com/awnuxkjy/es-ik



页: [1]
查看完整版本: ES1.4 中文分词插件ik