禁用分析索引模板中不存在的字段

时间:2016-10-18 16:59:06

标签: elasticsearch

我可以将dynamic_templates与索引模板结合使用吗?我们已经定义了适用于使用前缀创建的索引的索引模板。例如,以下索引模板将创建到以“te”开头的任何索引的映射:

*ngIf="!authenticationService.isLoggedIn()"

我还希望结合使用dynamic_template类型的功能,因此如果数据中出现任何新的“字符串”字段,默认情况下会禁用其分析。

1 个答案:

答案 0 :(得分:1)

应该能够在索引模板中指定动态映射

示例:

 {
      "template": "te*",
      "settings": {
        "number_of_shards": 1
      },
      "mappings": {
        "type1": {
          "_source": {
            "enabled": false
          },
          "_all": {
            "enabled": false
          },
          "properties": {
            "host_name": {
              "type": "string",
              "index": "not_analyzed"
            },
            "created_at": {
              "type": "date",
              "format": "EEE MMM dd HH:mm:ss Z YYYY"
            }
          },
          "dynamic_templates": [

            {
              "strings": {
                "match_mapping_type": "string",
                "mapping": {
                  "type": "string",
                  "index":"not_analyzed"
                }
              }
            }
          ]
        }
      }
    }

上面的示例将确保type1的任何动态“字符串类型”字段都不会被分析。