Динамический тип Elasticsearch и поля not_analyse

Я создал такой динамический шаблон, как у меня 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 работать, если значением является Array и Array объектов?

1 ответ

Решение

Настройка параметра индекса на no и включен в 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
                  }
               }
            }
         ]
      }
   }
}
Другие вопросы по тегам