没有在elasticsearch中分析字符串

时间:2016-04-09 12:53:30

标签: elasticsearch

我想在elasticsearch中编写一个模板,将所有strng更改为未分析。 official documentation显示我可以使用

执行此操作
"properties": {
        "host_name": {
          "type": "string",
          "index": "not_analyzed"
        },
        "created_at": {
          "type": "date",
          "format": "EEE MMM dd HH:mm:ss Z YYYY"
        }
      }

但问题在于我需要为每个字段执行此操作,例如host_name。我尝试使用_all__all,但似乎没有用。如何使用自定义模板更改未分析的所有字符串?

1 个答案:

答案 0 :(得分:2)

对于已经存在的索引,您无法更改已存在的字段的映射,即使可以,也需要重新索引所有文档,以便它们可以遵守新的映射规则。

否则,如果您只是创建索引:

PUT /_template/not_analyzed_strings
{
  "template": "xxx-*",
  "order": 0,
  "mappings": {
    "_default_": {
      "dynamic_templates": [
        {
          "string_fields": {
            "mapping": {
              "index": "not_analyzed",
              "type": "string"
            },
            "match_mapping_type": "string",
            "match": "*"
          }
        }
      ]
    }
  }
}