Как не создать новый эластичный тип поиска, если он не определен в исходной схеме? - PullRequest
0 голосов
/ 03 декабря 2018

Если я установлю следующую схему

curl -XPUT $myhost/some_index?pretty  -d '
{
  "mappings": {
    "_mapping_name": {
      "dynamic": false,
      "properties": {
          "field1":  { "type": "long", "store": true },
          "field2":  { "type": "long", "store": true }
      }
    },
  },
  "settings" : {
    "index" : {
        "number_of_shards" : 9,
        "number_of_replicas" : 1
    }
  }
}'

Следующая

curl -H "Content-Type: application/json" -XPOST "$myhost:9200/some_index/brand_new_mapping_name/" -d "{ \"field1\" : \"2\", \"field2\" : \"1\"}"

создаст новый тип brand_new_mapping_name

Есть ли способ настроить эластичныйпоиск, чтобы не создавать новый тип, похожий на новый dynamic = false, который препятствует созданию нового поля?

1 Ответ

0 голосов
/ 04 декабря 2018

В версии 5 была возможность отключить создание нового отображения в настройках индекса: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/dynamic-mapping.html#_disabling_automatic_type_creation

Но в последней версии я больше не могу найти это в документации.Вероятно, это связано с тем, что в следующих версиях эластичного поиска будет удалена функция множественных сопоставлений на индекс: https://www.elastic.co/guide/en/elasticsearch/reference/6.5/removal-of-types.html

Тогда вы больше не сможете создавать второе сопоставление (по замыслуи опция конфигурации (index.mapper.dynamic":false) больше не нужна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...