Elasticsearch索引tokenizer关键字无效

时间:2015-02-09 07:11:04

标签: elasticsearch

我的索引包含以下字段:

"Id":{"type":"string","analyzer":"string_lowercase"} // guid for example

在elasticsearch.yml:

index:
    analysis:
        analyzer:
            string_lowercase:
                tokenizer: keyword
                filter: lowercase

但是像这样过滤

{
  "filter": {
    "term": {
      "Id": "2c4294c2-ca84-4f69-b648-8a014ff6e55d"
    }
  }
}

不适用于整个guid值,只有部分(“2c4294c2”,“ca84”,..)

有趣的是,在其他机器上它可以正常使用相同的配置。

1 个答案:

答案 0 :(得分:1)

您无法通过elasticsearch.yml添加自定义分析器。有一个用于添加自定义分析器的REST API。根据您的要求,以下是必需的命令:

PUT <index name>
{
   "settings": {
      "analysis": {
         "analyzer": {
            "string_lowercase": {
               "type": "custom",
               "tokenizer": "keyword",
               "filter": "lowercase"
            }
         }
      }
   }
}