elastic- ik分词器插件

目录:

   --1. 安装

   --2.测试

   --3. 创建mapping

   --4. testing

1. 安装

Ik分词器的安置于测试

http://www.360doc.com/content/18/1128/12/33260087_797769881.shtml

方案1:
下载编译好了的: https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.1.0
         https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v5.6.2
 拷贝和解压release下的文件: #{project_path}/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-*.zip 到你的 elasticsearch 插件目录, 如: plugins/ik/   重启elasticsearch  (文件下的所有到/ik/)


方案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

在linux的es集群下安装ik:

bin/plugin install file:///export/software/elasticsearch-analysis-ik-1.10.4.zip

注意:每个节点都需要安装

此时的每个节点都需要配置一份自己的扩展字典吗?不用!

我们可以给它配置远程扩展字典:

 既然是远程词典,那么就要是一个可访问的链接,可以是一个页面,也可以是一个txt的文档,但要保证输出的内容是 utf-8 的格式,hotWords.php 的内容:

$s = <<<'EOF'
蓝瘦
千锋互联
不明觉厉
EOF;
header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT', true, 200);
header('ETag: "5816f349-19"');
echo $s;

ik 接收两个返回的头部属性 Last-Modified 和 ETag,只要其中一个有变化,就会触发更新,ik 会每分钟获取一次

重启 Elasticsearch

注意:如果设置的链接是一个页面,需要部署服务器,关于部署服务器可以是Apache或Tomcat等。

5、 配置elasticsearch.yml

在%es%/config下

index.analysis.analyzer.ik.type: "ik"

放置到最后

名称命名为。后续用到分词器的时候,使用ik这个名词。

6、 重启es

 

7、 访问

http://192.168.18.129:9200/_analyze?analyzer=ik_max_word&pretty=true&text=%E2%80%9C%E6%88%91%E6%98%AF%E4%B8%AD%E5%9B%BD%E4%BA%BA%E2%80%9D

参数说明:

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

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

4 创建Mapping,指定 IK分词器 :(只可以创建,不可以修改)

手动创建索

postman:

{
  "settings": {
    "analysis": {
      "analyzer": {
        "ik": {
          "tokenizer": "ik_max_word"
        }
      }
    }
  },
  "mappings": {
    "content": {
      "_all": {
        "enabled": false
      },
      "properties": {
        "id": {
          "type": "keyword"
        },
        "catid": {
          "type": "keyword"
        },
        "classify": {
          "type": "integer"
        },
        "title": {
          "type": "text",
          "analyzer": "ik_max_word",
          "store": true
        },
        "author": {
          "type": "text",
          "analyzer": "ik_max_word"
        },
        "published": {
          "type": "date"
        },
        "article": {
          "type": "text",
          "analyzer": "ik_max_word"
        }
      }
    }
  }
}

三、验证我们配置的分词器是否有效果

1.查看我们创建的这个索引的索引信息(可以借助elasticsearch-head-master插件

 5 :测试:

  post: http://localhost:9200/blog/hello/_search   post   方式

{
    "query":{
        "query_string":{
            "default_field":"content",
            "query":"测试ing"
        }
    }
}
原文地址:https://www.cnblogs.com/lshan/p/11938276.html