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();
        }
  • 相关阅读:
    node
    github
    [模块] pdf转图片-pdf2image
    python 15 自定义模块 随机数 时间模块
    python 14 装饰器
    python 13 内置函数II 匿名函数 闭包
    python 12 生成器 列表推导式 内置函数I
    python 11 函数名 迭代器
    python 10 形参角度 名称空间 加载顺序
    python 09 函数参数初识
  • 原文地址:https://www.cnblogs.com/icoding/p/5459675.html
Copyright © 2011-2022 走看看