8

我需要/想要在全球范围内定义我的自定义分析器。因此我根据这个答案编辑了 ES (elasticsearch.yml) 的配置文件:我可以自定义 Elastic Search 以使用我自己的停用词列表吗?相关条目是

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 版

4

1 回答 1

8

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

我在群里引用他的回答:

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

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

于 2013-06-05T17:44:05.687 回答