首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >elasticsearch [未能更新映射][MapperParsingException[Analyzer]未找到

elasticsearch [未能更新映射][MapperParsingException[Analyzer]未找到
EN

Stack Overflow用户
提问于 2016-03-16 14:11:08
回答 1查看 1.1K关注 0票数 1

我正在开发一个ES插件,它包含一个新的分析器和一个新的过滤器。我的elasticsearch.yml文件如下-:

代码语言:javascript
复制
index:
    analysis:
        analyzer:
            ik_syno:
                tokenizer: ik
                filter: [my_synonym_filter_ik]
            ik_syno_smart:
                tokenizer: ik_smart
                filter: [my_synonym_filter_ik_smart]
        filter:
            my_synonym_filter_ik_smart:
                type: org.elasticsearch.index.analysis.SynonymcnTokenFilterFactory
                use_smart: true
            my_synonym_filter_ik:
                type: org.elasticsearch.index.analysis.SynonymcnTokenFilterFactory
                use_smart: true

SynonymcnTokenFilterFactory是我的班。

现在,当我用

smart&pretty=true

分析器'ik_syno_smart‘如预期的那样工作。

代码语言:javascript
复制
 {
      "tokens" : [ {
        "token" : "hello",
        "start_offset" : 1,
        "end_offset" : 6,
        "type" : "ENGLISH",
        "position" : 1
      } ]
    }

但是,当我在映射调用中使用它时,它会返回错误。

这是我的索引字段

代码语言:javascript
复制
 "content": {
      "type": "string",
      "index_analyzer": "ik_syno_smart",
      "search_analyzer": "ik_smart",
      "boost": "10"
    },

错误日志如下:

代码语言:javascript
复制
on [shard failure [failed to update mappings][MapperParsingException[Analyzer [ik_syno_smart] not found for field [content]]]]

我做错什么了?我的ES版本是1.7.0。

EN

回答 1

Stack Overflow用户

发布于 2016-05-03 07:47:56

您必须始终在所有机器上安装插件,其他明智的ES将无法完成他的工作,因为当索引被分割到多台机器时,他们将负责工作。此外,如果您正在使用许多插件,那么在elasticsearch.yml中有一个很好的属性

代码语言:javascript
复制
plugin.mandatory: mapper-attachments,lang-groovy

这将不会启动您的ES,直到您安装所有插件。不幸的是,它还不能自动地设置它们,但是它会防止一些您可以忘记的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36038156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档