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
cd  elasticsearch-analysis-ik-master
mvn clean install -Dmaven.test.skip=true   #编译过程,需要下载相应的jar包。所以喝一杯咖啡,慢慢等待...

将编译后的elasticsearch-analysis-ik-1.2.9.zip,解压缩,复制到$ES_HOME/plugins目录

相应jar包:

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: [ik_analyzer]  
          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

时间: 2024-08-01 22:42:00

ES1.4 中文分词插件ik的相关文章

Elasticsearch安装中文分词插件ik

Elasticsearch默认提供的分词器,会把每个汉字分开,而不是我们想要的根据关键词来分词.例如: curl -XPOST "http://localhost:9200/userinfo/_analyze?analyzer=standard&pretty=true&text=我是中国人" 我们会得到这样的结果: { tokens: [ { token: text start_offset: 2 end_offset: 6 type: <ALPHANUM>

如何在Elasticsearch中安装中文分词器(IK)和拼音分词器?

声明:我使用的Elasticsearch的版本是5.4.0,安装分词器前请先安装maven 一:安装maven https://github.com/apache/maven 说明: 安装maven需要java1.7+ 编译安装分词器时,可能会报错,报错信息如下: [ERROR] COMPILATION ERROR : [INFO] -------------------------------------------------------------[ERROR] No compiler i

我与solr(六)--solr6.0配置中文分词器IK Analyzer

转自:http://blog.csdn.net/linzhiqiang0316/article/details/51554217,表示感谢. 由于前面没有设置分词器,以至于查询的结果出入比较大,并且无法进行正确的高亮显示.现在配置一下分词器来解决相关问题. solr6.0中进行中文分词器IK Analyzer的配置和solr低版本中最大不同点在于IK Analyzer中jar包的引用.一般的IK分词jar包都是不能用的,因为IK分词中传统的jar不支持solr6.0这个高版本的,所以就会发送运行

Elasticsearch 中文分词插件 jcseg 安装 (Ubuntu 14.04 下)

搜索可以说是开发中很常见的场景了,同样这次也一样... 之前的组合多数是选择 Mysql + Sphinx ,这次因为工作原因不再使用这种组合,虽然是老牌组合,但是确实限制诸多,而且每次配环境也是个问题,挺烦的...这次就尝试使用 Elasticsearch + Jcseg ,因为在文档检索方面 elasticsearch 做的相当不错,但是对中文环境来说就差一个很好的中文分词器,还好,国内好的中文分词器也有蛮多,但是我个人还是比较推荐 Jcseg . 好了,废话不多扯. 版本说明: elast

在ElasticSearch中使用 IK 中文分词插件

我这里集成好了一个自带IK的版本,下载即用, https://github.com/xlb378917466/elasticsearch5.2.include_IK 添加了IK插件意味着你可以使用ik_smart(最粗粒度的拆分)和ik_max_word(最细粒度的拆分)两种analyzer. 你也可以从下面这个地址获取最新的IK源码,自己集成, https://github.com/medcl/elasticsearch-analysis-ik, 里面还提供了使用说明,可以很快上手. 一般使用

Elasticsearch安装IK中文分词插件

一,从github上下载最新的Ik分词源码到本地 git clone https://github.com/medcl/elasticsearch-analysis-ik clone到本地后,将elasticsearch-analysis-ik目录中的 config/ik/ 整个目录拷贝到Elasticsearch安装目录的config目录下. 二,将elasticsearch-analysis-ik目录下的config中的elasticsearch.yml文件覆盖Elasticsearch安装

ElasticSearch的中文分词器ik

一.前言   为什么要在elasticsearch中要使用ik这样的中文分词呢,那是因为es提供的分词是英文分词,对于中文的分词就做的非常不好了,因此我们需要一个中文分词器来用于搜索和使用. 二.IK分词器的安装和使用 2.1.安装ik    我们可以从官方github上下载该插件,我们下载对应于我们使用的es的版本的ik,并且我们能够看到具体的安装步骤,可以有两种安装方法.      这里我们选择第一种方式:    重启es,我们就可以使用ik这个中文分词器了. 2.2.使用ik中文分词器  

ElasticSearch中文分词器-IK分词器的使用

IK分词器的使用 首先我们通过Postman发送GET请求查询分词效果 GET http://localhost:9200/_analyze { "text":"农业银行" } 得到如下结果,可以发现es的默认分词器无法识别中文中农业.银行这样的词汇,而是简单的将每个字拆完分为一个词,这显然不符合我们的使用要求. { "tokens": [ { "token": "农", "start_offse

es学习(三):分词器介绍以及中文分词器ik的安装与使用

什么是分词 把文本转换为一个个的单词,分词称之为analysis.es默认只对英文语句做分词,中文不支持,每个中文字都会被拆分为独立的个体. 示例 POST http://192.168.247.8:9200/_analyze { "analyzer":"standard", "text":"good good study" } # 返回 { "tokens": [ { "token":