博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ElasticSearch 安装 elasticsearch-analysis-ik分词器
阅读量:6779 次
发布时间:2019-06-26

本文共 3224 字,大约阅读时间需要 10 分钟。

 

IK version ES version
master 5.x -> master
5.6.1 5.6.1
5.5.3 5.5.3
5.4.3 5.4.3
5.3.3 5.3.3
5.2.2 5.2.2
5.1.2 5.1.2
1.10.1 2.4.1
1.9.5 2.3.5
1.8.1 2.2.1
1.7.0 2.1.1
1.5.0 2.0.0
1.2.6 1.0.0
1.2.5 0.90.x
1.1.3 0.20.x
1.0.0 0.16.2 -> 0.19.0

 

 

一、安装。

  • 去github下下载对应的ik版本: ,并解压到对应的安装路径:../elasticsearch-5.5.3/plugin/

     

  • 使用elasticsearch-plugin插件来安装 ( 版本 > v5.5.1 ):

    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.1/elasticsearch-analysis-ik-5.6.1.zip

二、重启 elasticsearch

 

三、安装配置

IKAnalyzer.cfg.xml can be located at {conf}/analysis-ik/config/IKAnalyzer.cfg.xml or {plugins}/elasticsearch-analysis-ik-*/config/IKAnalyzer.cfg.xml

IK Analyzer 扩展配置
custom/mydict.dic;custom/single_word_low_freq.dic
custom/ext_stopword.dic
location
http://xxx.com/xxx.dic

五、热更新 IK 分词使用方法

目前该插件支持热更新 IK 分词,通过上文在 IK 配置文件中提到的如下配置

location
location

其中 location 是指一个 url,比如 http://yoursite.com/getCustomDict,该请求只需满足以下两点即可完成分词热更新。

  1. 该 http 请求需要返回两个头部(header),一个是 Last-Modified,一个是 ETag,这两者都是字符串类型,只要有一个发生变化,该插件就会去抓取新的分词进而更新词库。

  2. 该 http 请求返回的内容格式是一行一个分词,换行符用 \n 即可。

满足上面两点要求就可以实现热更新分词了,不需要重启 ES 实例。

可以将需自动更新的热词放在一个 UTF-8 编码的 .txt 文件里,放在 nginx 或其他简易 http server 下,当 .txt 文件修改时,http server 会在客户端请求该文件时自动返回相应的 Last-Modified 和 ETag。可以另外做一个工具来从业务系统提取相关词汇,并更新这个 .txt 文件。

 

六、常见问题

1.自定义词典为什么没有生效?

请确保你的扩展词典的文本格式为 UTF8 编码

2.如何手动安装?

git clone https://github.com/medcl/elasticsearch-analysis-ikcd elasticsearch-analysis-ikgit checkout tags/{version}mvn cleanmvn compilemvn package

拷贝和解压release下的文件: #{project_path}/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-*.zip 到你的 elasticsearch 插件目录, 如: plugins/ik 重启elasticsearch

另一种方法是下载源码包:

 

1)、到github网站下载源代码,网站地址为:

 

右侧下方有一个按钮“Download ZIP",点击下载源代码elasticsearch-analysis-ik-master.zip。

 

2)、解压文件elasticsearch-analysis-ik-master.zip,进入下载目录,执行命令:

 

1 unzip elasticsearch-analysis-ik-master.zip

 

 

3)、将解压目录文件中config/ik文件夹复制到ES安装目录config文件夹下。

4)、因为是源代码,此处需要使用maven打包,进入解压文件夹中,执行命令:

1 mvn clean package

5)、将打包得到的jar文件elasticsearch-analysis-ik-1.2.6-sources.jar复制到ES安装目录的lib目录下。

6)、在ES的配置文件config/elasticsearch.yml中增加ik的配置,在最后增加:

 

1 index:   2   analysis:                      3     analyzer:         4       ik:   5           alias: [ik_analyzer]   6           type: org.elasticsearch.index.analysis.IkAnalyzerProvider   7       ik_max_word:   8           type: ik   9           use_smart: false  10       ik_smart:  11           type: ik  12           use_smart: true

index.analysis.analyzer.ik.type : “ik”

 

7)、重新启动elasticsearch服务,这样就完成配置了。

 

3.分词测试失败 请在某个索引下调用analyze接口测试,而不是直接调用analyze接口 如:, 版本5.0以后的将使用analyzer=ik_max_word,如: curl -XGET 'http://localhost:9200/_analyze?pretty&analyzer=ik_smart' -d '联想是全球最大的笔记本厂商'。

4. ik_max_word 和 ik_smart 什么区别?

ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合;

ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”。

 

【references】

【1】https://github.com/medcl/elasticsearch-analysis-ik

【2】http://blog.csdn.net/jam00/article/details/52983056

 

转载于:https://www.cnblogs.com/hoojjack/p/7608248.html

你可能感兴趣的文章
Mac 删除分区与合并分区
查看>>
我的友情链接
查看>>
【linux】redhat 下 开启ftp 服务
查看>>
linux ssh配置文件的详解
查看>>
我的友情链接
查看>>
linux read 用法
查看>>
minikebe部署
查看>>
在CentOS6.x中安装Docker
查看>>
我的友情链接
查看>>
类似Datepicker的月份选择插件
查看>>
存储过程显示输出
查看>>
我的友情链接
查看>>
CentOS 6网卡名称修改 以及 centos7 采用传统命名方式
查看>>
来食路 - 素食系列之怎么挑选时令好蔬果
查看>>
json-lib的一个BUG,Float型数据会失真
查看>>
思科 GNS3 配置 静态 NAT
查看>>
Maven 中的jar包冲突
查看>>
关于大型网站技术演进的思考(三)--存储的瓶颈(3)
查看>>
lvs基于fwm定义集群服务
查看>>
事务的4种隔离级别
查看>>