我想在ElasticSearch中定义一个全局分析器。我编辑了ES(elasticsearch.yml)的配置文件
index :
analysis :
analyzer :
myTestAnalyzer :
type : standard
max_token_length : 50
并重新启动该服务。
当我在Sense中运行时
GET /_analyze?analyzer=myTestAnalyzer
{"This is a test"}
我得到了
{ “error”:“ElasticsearchIllegalArgumentException [找不到分析器[myTestAnalyzer]]”, “地位”:400 }
我已经阅读了另一篇文章(define analyzer globally (ES)),我需要创建一个使用分析器的映射,然后在分析器调用中使用该索引。
你能告诉我一个如何做到这一点的例子。
谢谢
答案 0 :(得分:-1)
以下是添加映射的方法:
curl -XPUT 'http://localhost:9200/test_index/test/_mapping' -d '
{
"test": {
"properties": {
"myField": {"type": "string"}
},
"analyzer": "myTestAnalyzer"
}
}'
如果您要为搜索和索引指定不同的分析器,则可以使用analyzer
和search_analyzer
代替index_analyzer
。 (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-root-object-type.html#_index_search_analyzers)