ElasticSearch全球分析器

时间:2014-02-18 09:47:45

标签: elasticsearch

我想在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)),我需要创建一个使用分析器的映射,然后在分析器调用中使用该索引。

你能告诉我一个如何做到这一点的例子。

谢谢

1 个答案:

答案 0 :(得分:-1)

以下是添加映射的方法:

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

如果您要为搜索和索引指定不同的分析器,则可以使用analyzersearch_analyzer代替index_analyzer。 (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-root-object-type.html#_index_search_analyzers