我想在 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 }
我在另一篇文章(全局定义分析器(ES))中读到,我需要创建一个使用分析器的映射,然后在分析器调用中使用该索引。
您能给我一个如何做到这一点的例子吗?
谢谢你
添加全局分析器的唯一方法是安装分析插件,请参阅此处:https://www.elastic.co/guide/en/elasticsearch/plugins/current/creating-stable-plugins.html
以下是添加映射的方法:
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)