我需要/想要在全局定义我的自定义分析器。因此,我根据以下答案编辑了ES的配置文件(elasticsearch.yml):是否可以自定义ElasticSearch以使用自己的停用词列表?相关条目是
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]]。
curl -XGET 'localhost:9200/_analyze?analyzer=angram' -d 'this is a test'
ElasticSearchIllegalARgumentException[failed to find analyzer [angram]]
配置错误吗?(尽管我希望在启动过程中读取配置时遇到错误时,ES无法启动)
如何正确定义全局分析器?
编辑: 我正在使用版本0.90.0
问题出在curl语句中的URL 。归功于Ivan(https://groups.google.com/forum/#!topic/elasticsearch/5XlUoghKURg)
curl
我引用了他在小组中的回答:
您不能使用自定义分析器,直到索引对其进行了引用。您将需要创建一个使用分析器的映射,然后在分析器调用中使用该索引。无需将任何文档索引到该索引。 curl -XGET 'localhost:9200/SOMEINDEX/_analyze?analyzer=angram'
您不能使用自定义分析器,直到索引对其进行了引用。您将需要创建一个使用分析器的映射,然后在分析器调用中使用该索引。无需将任何文档索引到该索引。
curl -XGET 'localhost:9200/SOMEINDEX/_analyze?analyzer=angram'