zoukankan      html  css  js  c++  java
  • ElasticSearch5.3安装IK分词器并验证

    ElasticSearch5.3安装IK分词器

    之前使用Elasticsearch安装head插件成功了,但是安装IK分词器却失败了。貌似是ElasticSearch5.0以后就不支持直接在elasticsearch.yml中配置IK了。原因下面会说明。
    首先下载:
    https://www.elastic.co/downloads/elasticsearch
    https://github.com/medcl/elasticsearch-analysis-ik
    ,最新版本貌似是5.3 了。

    第一步 预处理:

    1. 解压elasticsearch-5.3.0.zip>D:programfilessofttoolselasticsearchelasticsearch-5.3.0
    2. 解压elasticsearch-analysis-ik-5.3.0>D:programfilessofttoolselasticsearchpluginselasticsearch-analysis-ik-5.3.0
    3. 编译elasticsearch-analysis-ik插件 cmd>D:programfilessofttoolselasticsearchpluginselasticsearch-analysis-ik-5.3.0>mvn clean package

    第二步 配置:

    1. IK配置,如下图是IK分词器config目录下的配置D:programfilessofttoolselasticsearchpluginselasticsearch-analysis-ik-5.3.0config
      这里写图片描述

    2. 在D:programfilessofttoolselasticsearchelasticsearch-5.3.0config目录中新建ik文件夹,把上图中的IK配置文件放入ElasticSearch目录中的D:programfilessofttoolselasticsearchelasticsearch-5.3.0configik目录下

    这里写图片描述
    ik里面的内容就是 第二步:1.IK配置 里面的配置。
    3. 配置IK分词器
    下图是通过mvn命令编译后生成的zip包
    这里写图片描述

    将上图中的zip包放入D:programfilessofttoolselasticsearchelasticsearch-5.3.0pluginsik (ps:ik目录没有的话自己新建一个就好),进行解压
    结果如下图所示:

    这里写图片描述
    整个安装就完成了。

    第三步 测试:
    1. 修改elasticsearch.yml中的配置
    设置cluster.name,node.name,同时解开这两个配置的注释
    设置http.port:9200,其他不需要增加配置了
    2. windows下双击D:programfilessofttoolselasticsearchelasticsearch-5.3.0inelasticsearch.bat
    不报错说明安装成功。
    这里写图片描述
    3. 安装Http连接访问工具,比如火狐插件httpRequester,安装完成后会在火狐浏览器右上角出现插件的标示。
    4. 创建索引
    这里写图片描述

    content to send:
    {
        "settings" : {
            "analysis" : {
                "analyzer" : {
                    "ik" : {
                        "tokenizer" : "ik_smart"
                    }
                }
            }
        },
        "mappings" : {
            "logs" : {
                "dynamic" : true,
                "properties" : {
                    "message" : {
                        "type" : "string",
                        "analyzer" : "ik_smart"
                    }
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    点击Put按钮,出现图右边的返回值,说明创建索引成功。
    5. 进行分词测试:
    这里写图片描述

    这里写图片描述

    安装过程遇到的坑:
    1.将网上对使用IK的配置放到elasticsearch.yml中就会报如下的错误:
    org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: node settings must not contain any index level settings
    这个无论怎么想都不明白,而且网上还没有几个人遇到过这种情况。

    2.Caused by: java.lang.IllegalStateException: jar hell!
    将IK编译出来的jar,和source.jar两个文件放入elasticsearch的lib里后就出现了,有人说是版本问题,但是我选择的两者都是最新版本,并且对应。这里是因为lib里面有IK了,然后elasticsearch去读取plugin文件夹下的插件的时候又装载了一次,于是就出现了这个问题。将lib里的IK jar包删除,改从plugins里加载就没有问题了。网上也有不少是这样做的,但是确实这么做不正确。
    在D:programfilessofttoolselasticsearchelasticsearch-5.3.0logs会看到相应的错误日志。
    3. Exception in thread “main” java.lang.IllegalStateException: Could not load plugin descriptor for existing plugin [analysis-ik]. Was the plugin built before 2.0?
    Likely root cause: java.nio.file.NoSuchFileException: /home/es/es2/plugins/analysis-ik/plugin-descriptor.properties
    出现上面的异常是我一开始把编译出来的jar包放入D:programfilessofttoolselasticsearchelasticsearch-5.3.0pluginsik里面了,其实是要把D:programfilessofttoolselasticsearchpluginselasticsearch-analysis-ik-5.3.0 arget eleaseselasticsearch-analysis-ik-5.3.0.zip解压到那个ik目录下面。
    4. 为什么没有在elasticsearch.yml配置IK相关的分词属性呢
    5. 在github上 https://github.com/medcl/elasticsearch-analysis-ik的使用文档说了:
    这里写图片描述

    5.0.0及其以后就不会上面两个分词器了,而使用两个参数去替代,同时根据上面的使用文档来说,作者也没有说明要针对IK配置elasticsearch.yml。
    总体来说还是遇到一定坎坷的,网上很多ES的文章对于新版本都不适用了。我从新将5.0.0的安装环境全部删除然后引入最新版本,才搞定了IK分词器。最新版本的ES安装head插件应该没有什么问题了,毕竟head也没有要求要对5.0.0以后的版本进行安装配置的改动。

    原文地址:https://blog.csdn.net/u010504064/article/details/70214040
  • 相关阅读:
    int vs Integer
    贫民窟里的WPF系列讲座(一)
    微软虚拟化技术构建高效开发与测试环境(四)
    贫民窟里的WPF系列讲座(二)
    WPF的WEBCAST内容
    微软虚拟化技术构建高效开发与测试环境(三)
    微软虚拟化技术构建高效开发与测试环境(五)
    微软虚拟化技术构建高效开发与测试环境(二)
    手把手教用XNA开发winphone7游戏(一)
    手把手教用XNA开发winphone7游戏(二)
  • 原文地址:https://www.cnblogs.com/jpfss/p/11604094.html
Copyright © 2011-2022 走看看