zoukankan      html  css  js  c++  java
  • 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"
            }
        }
    }
  • 相关阅读:
    清除陷入CLOSE_WAIT的进程
    Eclipse
    远程连接elasticsearch遇到的问题
    Linux环境Nginx安装
    CentOS安装mysql
    py2exe使用方法
    Python3.4如何读写Excel
    getPhysicalNumberOfCells 与 getLastCellNum的区别
    浅析MySQL中exists与in的使用
    【MongoDB for Java】Java操作MongoDB
  • 原文地址:https://www.cnblogs.com/lshan/p/11938276.html
Copyright © 2011-2022 走看看