在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-head测试比较方便。

这个IK分词插件挺好用的,支持自定义分词,更重要的是支持热更新。

比如上面这个应用程序层是被分成了两个词,如果你把应用程序层作为一个词添加到你的自定义词典中,那么结果就会发生微妙的变化,通过这样不断的完善词库,相信搜索的体验会越来越好。

现在IK分词插件也算集成好了,如何使用?

首先新建一个索引,并且给这个索引下的文档类型设置Mapping关系

这里还是继续使用昨天新建的索引twitter作例子,所以只需要给文档类型tweet 新建一个字段Content,并设置这一个字段的Mapping来举例:

http://localhost:9200/twitter/_mapping/tweet/

{
  "properties": {
    "content": {
      "type": "text",
      "store": "no",
      "term_vector": "with_positions_offsets",
      "analyzer": "ik_smart",
      "search_analyzer": "ik_smart",
      "include_in_all": "true",
      "boost": 8
    }
  }
}

这样一来,后面添加的Content就会使用ik_smart来分词,

添加一条测试数据:

http://localhost:9200/twitter/tweet/1/  选择Put  Method

{
  "content": "应用程序层是一个附加层"
}

查询测试:

http://localhost:9200/twitter/_search/

使用POST Method,因为我使用ElasticSearch Head 在Get的情况下不返回highlight信息,

{
  "query" : { "match" : { "content" : "应用程序层是一个附加层" }},
  "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}

返回如下:

使用应用程序关键词是搜不到内容的,因为分词器不识别 这个词,就是说你要用被你拆分之后的词来搜索,才有匹配的记录。

比如下面几个就是被拆分出来的词

时间: 2024-10-11 15:35:50

在ElasticSearch中使用 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中文分词器远程字典设置

前面已经对"IK中文分词器"有了简单的了解:  但是可以发现不是对所有的词都能很好的区分,比如:  逼格这个词就没有分出来. 词库 实际上IK分词器也是根据一些词库来进行分词的,我们可以丰富这个词库. IK分词器(IK Analysis for Elasticsearch)给了我们一个基本的配置: https://github.com/medcl/elasticsearch-analysis-ik  修改我们es实例中ik插件的配置: cd elasticsearch-5.3.0/pl

es5.4安装head、ik中文分词插件

安装maven打包工具 wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz tar -xf apache-maven-3.3.9-bin.tar.gz mv apache-maven-3.3.9 /usr/local/data/apache-maven vim /etc/profile export MAVEN_HOME=/usr/local/data/ap

30.IK中文分词器的安装和简单使用

在之前我们学的都是英文,用的也是英文的standard分词器.从这一节开始,学习中文分词器.中国人基本上都是中文应用,很少是英文的,而standard分词器是没有办法对中文进行合理分词的,只是将每个中文字符一个一个的切割开来,比如说中国人 --> 中 国 人 在中方搜索引擎领域,比较成熟和流行的,就是ik分词器. 一.在elasticsearch中安装ik中文分词器 (1)git clone https://github.com/medcl/elasticsearch-analysis-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>

ES1.4 中文分词插件ik

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

Centos7 Elasticsearch+IK中文分词+Kibana

一.关于elasticsearch.ik.kibana安装包的下载: 1.ik中文分词的下载地址为:https://github.com/medcl/elasticsearch-analysis-ik/releases 查看和下载对应的ik版本 2.elasticsearch.kibana安装包的而下载地址: https://www.elastic.co/downloads/past-releases 下载与ik对应版本的elasticsearch.kibana 二.安装和配置elasticse

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

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

Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,elasticsearch安装配置及中文分词

http://fuxiaopang.gitbooks.io/learnelasticsearch/content/  (中文) 在Elasticsearch中,文档术语一种类型(type),各种各样的类型存在于一个索引中.你也可以通过类比传统的关系数据库得到一些大致的相似之处: 关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns) Elasticsearch ⇒ 索引 ⇒ 类型 ⇒ 文档 ⇒ 字段(Fields)一个Elasticsearch集群可以包含多个索引(数据库),也就是说其