默认情况下如何对所有新索引进行not_analyzed?

时间:2016-04-06 10:52:18

标签: elasticsearch

know我可以使用dynamic_template为特定新索引中的新字段设置字符串字段not_analyzed

是否有办法将此设置应用于全局 - 即为任何新索引中的任何字符串字段设置属性not_analyzed? (无需为每个新索引设置它)

1 个答案:

答案 0 :(得分:8)

是的,您可以通过*index template_default_ mapping type

上创建dynamic templates来实现这一目标
curl -XPUT localhost:9200/_template/global -d '{
  "template": "*",
  "mappings": {
    "_default_": {
      "dynamic_templates": [
        {
          "strings": {
            "match_mapping_type": "string",
            "mapping": {
              "type": "string",
              "index": "not_analyzed"
            }
          }
        }
      ]
    }
  }
}'

然后,您可以在任何新索引中创建任何文档,所有字符串字段将为not_analyzed

curl -XPUT localhost:9200/dummy_index/dummy_type/1 -d '{"name": "dummy"}'

如果您检查新创建的dummy_type的{​​{1}}映射类型,您会看到dummy_index字段为name