IK 分词器和ElasticSearch集成使用

一、IK分词器简介

  IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出 了3个大版本。最初,它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。

  IK分词器3.0的特性如下:

    1)采用了特有的“正向迭代最细粒度切分算法“,具有60万字/秒的高速处理能力。

    2)采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。

    3)对中英联合支持不是很好,在这方面的处理比较麻烦.需再做一次查询,同时是支持个人词条的优化的词典存储,更小的内存占用。     4)支持用户词典扩展定义。

    5)针对Lucene全文检索优化的查询分析器IKQueryParser;采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高Lucene检索的命中率。

二、ElasticSearch集成IK分词器

1、IK分词器的安装

  下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

  

2、解压,将解压后的elasticsearch文件夹拷贝到elasticsearch-5.6.8\plugins下,并重命名文件夹为analysis-ik

  

3、重新启动ElasticSearch,即可加载IK分词器

  

4、IK分词器测试

  IK提供了两个分词算法ik_smart 和 ik_max_word

  其中 ik_smart 为最小切分,ik_max_word为最细粒度划分

  1)最小切分:在浏览器地址栏输入地址

http://127.0.0.1:9200/_analyze?analyzer=ik_smart&pretty=true&text=我是程序员 

  输出的结果为:

      

  2)最细切分:在浏览器地址栏输入地址

http://127.0.0.1:9200/_analyze?analyzer=ik_max_word&pretty=true&text=我是程序员

  输出的结果为:

    

三、修改索引映射mapping

1、删除原有es_test01索引

   请求:DELETE    http://localhost:9200/es_test01

  

2、创建es_test01索引,此时分词器使用ik_max_word

  请求:PUT    http://localhost:9200/es_test01

  

  请求体:

{
    "mappings": {
        "article": {
            "properties": {
                "id": {
                    "type": "long",
                    "store": true,
                    "index":"not_analyzed"
                },
                "title": {
                    "type": "text",
                    "store": true,
                    "index":"analyzed",
                    "analyzer":"ik_max_word"
                },
                "content": {
                    "type": "text",
                    "store": true,
                    "index":"analyzed",
                    "analyzer":"ik_max_word"
                }
            }
        }
    }
}

3、创建文档

  请求:PUT    http://localhost:9200/es_test01/article/1

  

  请求体:

{
    "id":1,
    "title":"ElasticSearch是一个基于Lucene的搜索服务器", "content":"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。
    Elasticsearch是用Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时
    搜索,稳定,可靠,快速,安装使用方便。"
}

4、再次测试queryString查询

  请求:POST    http://localhost:9200/es_test01/article/_search

  

  请求体:

{
    "query": {
        "query_string": {
            "default_field": "title",
            "query": "搜索服务器"
        }
    }
}

  返回结果:

  

5、将请求体搜索字符串修改为"钢索",再次查询

  

6、再次测试term测试

  请求:POST    http://localhost:9200/es_test01/article/_search

  

   请求体:

{
   "query": {
        "term": {
            "title": "搜索"
        }
    }
}

  返回结果:

  

原文地址:https://www.cnblogs.com/Zzzzn/p/12368216.html

时间: 2024-07-28 20:36:04

IK 分词器和ElasticSearch集成使用的相关文章

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

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

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

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分词器

起因 需要在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

使用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

Elasticsearch 7.x - IK分词器插件(ik_smart,ik_max_word)

一.安装IK分词器 Elasticsearch也需要安装IK分析器以实现对中文更好的分词支持. 去Github下载最新版elasticsearch-ik https://github.com/medcl/elasticsearch-analysis-ik/releases 将ik文件夹放在elasticsearch/plugins目录下,重启elasticsearch. Console控制台输出: [2019-09-04T08:50:23,395][INFO ][o.e.p.PluginsSer

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