zoukankan      html  css  js  c++  java
  • elasticsearch入门 (三 ik 分词器安装)

    ik git 地址 https://github.com/medcl/elasticsearch-analysis-ik

    readme 包含各个版本ik对应的 es 版本

    下载对应的ikzip包 命令如下

    https://github.com/medcl/elasticsearch-analysis-ik/archive/v1.5.0.zip

    解压后 执行maven打包命令(默认系统已经安装maven)

    mvn package

    编译成功后进入target下
    有一个编译好的elasticsearch-analysis-ik-1.5.0.jar 将此包 copy 到 es 的lib 下
    有一个release包 包中有一个 elasticsearch-analysis-ik-1.5.0.zip zip 将此zip 解压到 es/plugins/ik 下
    另外
    elasticsearch-analysis-ik 包下有一个config文件夹将此文件夹内的内容copy到 es/config/ik 下

    根据git上给的样例,需要修改es.yml 配置文件,并在最后一行设置默认分词器为ik
    但是本人在配置过程中一直没有生效,每次配置都会出现
    IndexCreationException[failed to create index]; nested: IllegalArgumentException[Unknown Analyzer type [org.elasticsearch.index.analysis.I
    kAnalyzerProvider] for [ik]];
    错误

    最后本人删掉了该配置改为在代码中设置mapping 的方式设置分词,网上关于如何设置mapping代码也比较少,
    故在此将代码贴出,client部分代码自行设置mapping代码如下:

    Client client = ElasticClient.getInstance().getClient();
        @Test
        public void testMapping() throws IOException {
            client.admin().indices().prepareCreate("opac").execute().actionGet();
            XContentBuilder mapping = jsonBuilder()
                    .startObject()
                        .startObject("title")
                            .startObject("properties")
                                .startObject("recCtrlId").field("type", "string").field("store","yes").field("index", "not_analyzed").endObject()
                                .startObject("titleAbs").field("type", "string").field("store", "yes").field("analyzer","ik").endObject()
                                .startObject("title").field("type", "string").field("store", "yes").field("analyzer","ik").endObject()
                                .startObject("authors").field("type", "string").field("index", "analyzed").endObject()
                                .startObject("publisher").field("type", "string").field("index", "analyzed").endObject()
                                .startObject("pubdateDate").field("type", "date").endObject()
                            .endObject()
                        .endObject()
                    .endObject();
            PutMappingRequest mappingRequest = Requests.putMappingRequest("opac").type("title").source(mapping);
            client.admin().indices().putMapping(mappingRequest).actionGet();
        }
  • 相关阅读:
    苹果将首次采用HTML5直播发布会 狼人:
    Python 3.2 alpha 2发布 狼人:
    下一代Linux文件系统Btrfs走向成熟 狼人:
    Hello! 404 狼人:
    退格回车控制台输入密码
    poj 3233 Matrix Power Series
    地址参考clang: error: linker command failed with exit code 1 (use v to see invocation)
    文本截断JQuery为textarea添加maxlength,并且兼容IE
    代码下载Html5初探视频元素video示例
    c# 限制textbox的输入范围和长度(长度不用maxlength方法)
  • 原文地址:https://www.cnblogs.com/icoding/p/5459675.html
Copyright © 2011-2022 走看看