Elasticsearch 动态类型和 not_analyse 字段

Elasticsearch dynamic type and not_analyse fields

我创建了一个这样的动态模板,因为我有 dynamic types

{
  "template": "test-*", //match any index that starts with 'test-'
  "settings": {
    "number_of_shards": 5
  },
  "mappings": {
    "_default_": {
      "_all": {
        "enabled": false
      },
      "dynamic_templates": [
        {
          "test_id": {
            "match": "test_id", // This is an Array of strings field ["a","b"]
            "mapping": {
              "type": "string",
              "index": "not_analyzed"
            }
          }
        },
        {
          "branch_id": {
            "match": "branch_id", // This is Array of objects field [{"a": "b"}, {"c": "d"}]
            "mapping": {
              "type": "string",
              "index": "not_analyzed"
            }
          }
        }
      ]
    }
  }
}

示例文档:

{
  "_index": "test-data13",
  "_type": "025e179ccfd79cacd92f61bb17bddcf8abf83dc2",
  "_id": "847",
  "_version": 1,
  "_score": 1,
  "_source": {
    "test_id": [
      "test_id_test_10123" // disable indexing or full text search for this Array of string
    ],
    "branch_id": [ // disable indexing or full text search for this Array of hashes
      {
        "1": "test_id_test_10123"
      },
      {
        "2": "test_id_test_10124"
      }
    ]
  }
}

如何更改此模板,使 test_id 字段和 branch_id 字段的值不应该被索引或分析?如果值是数组和对象数组,not_analyzed 是否有效?

index option to no and enabled 设置为 false 应该确保 test_id 数组和 branch_id 对象不被索引。

示例:

{
   "template": "test-*",
   "settings": {
      "number_of_shards": 5
   },
   "mappings": {
      "_default_": {
         "_all": {
            "enabled": false
         },
         "dynamic_templates": [
            {
               "test_id": {
                  "match": "test_id",
                  "mapping": {
                     "index": "no"
                  }
               }
            },
            {
               "branch_id": {
                  "match": "branch_id",
                  "mapping": {
                     "index": "no",
                     "enabled": false
                  }
               }
            }
         ]
      }
   }
}