ElasticSearch 安装 elasticsearch-analysis-ik分词器

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版本: https://github.com/medcl/elasticsearch-analysis-ik/releases,并解压到对应的安装路径:../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

<?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/mydict.dic;custom/single_word_low_freq.dic</entry>
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords">custom/ext_stopword.dic</entry>
 	<!--用户可以在这里配置远程扩展字典 -->
	<entry key="remote_ext_dict">location</entry>
 	<!--用户可以在这里配置远程扩展停止词字典-->
	<entry key="remote_ext_stopwords">http://xxx.com/xxx.dic</entry>
</properties>

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

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

 	<!--用户可以在这里配置远程扩展字典 -->
	<entry key="remote_ext_dict">location</entry>
 	<!--用户可以在这里配置远程扩展停止词字典-->
	<entry key="remote_ext_stopwords">location</entry>

其中 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-ik
cd elasticsearch-analysis-ik
git checkout tags/{version}
mvn clean
mvn compile
mvn package

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

3.分词测试失败 请在某个索引下调用analyze接口测试,而不是直接调用analyze接口 如:http://localhost:9200/your_index/_analyze?text=中华人民共和国MN&tokenizer=my_ik, 版本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

时间: 2024-10-29 18:41:28

ElasticSearch 安装 elasticsearch-analysis-ik分词器的相关文章

使用Docker 安装Elasticsearch、Elasticsearch-head、IK分词器 和使用

原文:使用Docker 安装Elasticsearch.Elasticsearch-head.IK分词器 和使用 Elasticsearch的安装 一.elasticsearch的安装 1.镜像拉取 docker pull elasticsearch:tag 2.启动 docker run -it -e "discovery.type=single-node" --name="es" -p 9200:9200 -p 9300:9300 elasticsearch 3

【Docker系列】认识ELK,docker安装ELK和IK分词器

1.ELK简介 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件.新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具. Elasticsearch是个开源分布式搜索引擎,提供搜集.分析.存储数据三大功能.它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据

Windows上安装ElasticSearch7的IK分词器

首先IK分词器和ES版本一定要严格对应,下面是版本对照表 IK分词器下载地址 https://github.com/medcl/elasticsearch-analysis-ik/releases 我安装的是ES7.3.2(Windows上安装ElasticSearch7),所以下载IK分词器V7.3.2 在Windows上安装,所以下载.zip 下载完后解压: 在ES安装目录下的plugins文件夹下创建analysis-ik文件夹 将elasticsearch-analysis-ik-7.3

Docker容器中的Elasticsearch中离线安装IK分词器

Elasticsearch自带的分词器对中文分词不是很友好,所以我们下载开源的IK分词器来解决这个问题.首先进入到plugins目录中下载分词器,下载完成后然后解压,再重启es即可.具体步骤如下: 注意:elasticsearch的版本和ik分词器的版本需要保持一致,不然在重启的时候会失败.可以在这查看所有版本,选择合适自己版本的右键复制链接地址即可.在该链接中找到符合自己版本的:https://github.com/medcl/elasticsearch-analysis-ik/release

ElasticSearch、IK分词器、Head Master安装-----Windows

ElasticSearch安装运行前提条件:配置好Jdk Head-Master运行前提条件:node 一.下载 地址:https://www.elastic.co/cn/downloads/elasticsearch 历史版本:找到下面这句话 然后双击 Not the version you're looking for? View past releases. 二.IK分词器下载 地址:https://github.com/medcl/elasticsearch-analysis-ik/re

Elasticsearch入门之从零开始安装ik分词器

起因 需要在ES中使用聚合进行统计分析,但是聚合字段值为中文,ES的默认分词器对于中文支持非常不友好:会把完整的中文词语拆分为一系列独立的汉字进行聚合,显然这并不是我的初衷.我们来看个实例: POST http://192.168.80.133:9200/my_index_name/my_type_name/_search { "size": 0, "query" : { "range" : { "time": { "

elasticsearch安装ik分词器(极速版)

简介:下面讲有我已经打包并且编辑过的zip包,你可以在下面下载即可. 1.下载zip包.elasticsearch-analysis-ik-1.8.0.jar下面有附件链接[ik-安装包.zip],下载即可.(内有做好的elasticsearch-analysis-ik-1.8.0.jar) 2.上传zip包.下载ik.zip文件后解压缩,如下图. 修改plugin-descriptor.properties文件,将elasticsearch.version=2.2.0改成自己的elastics

elasticsearch集群&&IK分词器&&同义词

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.3/elasticsearch-2.3.3.tar.gz 集群安装: 三个节点:master,slave1,slvae2 vi elasticsearch.yml cluster.name: my-application node.name: node-3(节点独有的名称,注意唯一性

ElasticSearch 用ik分词器建立索引(java API)

ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,作为当前流行的企业级搜索引擎,用于云计算中,能够达到实时搜索,并且具有稳定,可靠,快速安装,使用方便等多种优点,得到大多数企业的青睐. ElasicSearch可以通过终端建立索引,但是本人在做项目的时候用终端建立的索引,然后使用Java API进行数据的插入,始终得不到分词,最终的解决办法就是通过Java API

elasticsearch插件之ik分词器

ES默认对英文文本的分词器支持较好,但和lucene一样,如果需要对中文进行全文检索,那么需要使用中文分词器,同lucene一样,在使用中文全文检索前,需要集成IK分词器. 可以从GitHub上获取:https://github.com/medcl/elasticsearch-analysis-ik 因为是源码,我们要用到maven对其进行打包,因此你需要安装maven. 环境:centos6.9.elasticsearsh5.6.5.java1.8 1.下载 在GitHub上获取与eastic