【问题标题】:define analyzer globally (ES)全局定义分析器(ES)
【发布时间】:2013-05-30 13:38:00
【问题描述】:

我需要/想要在全局范围内定义我的自定义分析器。因此我根据这个答案编辑了ES(elasticsearch.yml)的配置文件:Can I customize Elastic Search to use my own Stop Word list?相关条目是

index.analysis.analyzer.angram:
  type: custom
  tokenizer: standard
  filter: standard, lowercase, fngram
index.analysis.filter.fngram:
  type: nGram
  min_gram: 2
  max_gram: 10

但是当我尝试调用curl -XGET 'localhost:9200/_analyze?analyzer=angram' -d 'this is a test' 时,我得到一个ElasticSearchIllegalARgumentException[failed to find analyzer [angram]]

配置错了吗? (虽然我希望ES在启动期间读取配置时遇到错误时不会启动)

如何在全局范围内正确定义分析器?

编辑: 我使用的是 0.90.0 版

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    问题在于curl 语句中的URL。归功于 Ivan (https://groups.google.com/forum/#!topic/elasticsearch/5XlUoghKURg)

    我在群里引用他的回答:

    在被索引引用之前,您不能使用自定义分析器。您需要创建一个使用分析器的映射,然后在分析器调用中使用该索引。无需将任何文档索引到该索引。

    curl -XGET 'localhost:9200/SOMEINDEX/_analyze?analyzer=angram'

    【讨论】:

    • 在这种情况下,您需要先创建分析器,因为 angram 是自定义分析器。无需创建其他内置分析器,例如 Standard 或 whitespace。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 2021-09-08
    相关资源
    最近更新 更多