2014-02-18 63 views
1

我想在ElasticSearch中定义一个全局分析器。我编辑了ES的配置文件(elasticsearch.yml)ElasticSearch全局分析器

index : 
    analysis :   
     analyzer :    
     myTestAnalyzer :     
      type : standard 
      max_token_length : 50 

并重新启动服务。

当我感觉

GET /_analyze?analyzer=myTestAnalyzer 
{"This is a test"} 

我得到

运行{ “错误”: “ElasticsearchIllegalArgumentException [未能找到分析[myTestAnalyzer]”, “状态”:400 }

我读过另一篇文章(define analyzer globally (ES)),我需要创建一个使用分析器的映射,然后在分析器调用中使用该索引。

你可以给我一个例子如何做到这一点。

谢谢

回答

0

这里是如何添加映射:

curl -XPUT 'http://localhost:9200/test_index/test/_mapping' -d ' 
{ 
    "test": { 
     "properties": { 
      "myField": {"type": "string"} 
     }, 
    "analyzer": "myTestAnalyzer" 
    } 
}' 

而不是analyzer你也可以使用search_analyzerindex_analyzer如果要指定搜索和索引不同的分析仪。 (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-root-object-type.html#_index_search_analyzers

+0

谢谢。现在它工作正常。 –