Добавление значения по умолчанию к существующему отображению в упругом поиске - PullRequest
1 голос
/ 04 июля 2019

У меня есть индекс с отображением.Я решил добавить новое поле к существующему отображению:

{

  "properties": {
    "sexifield": {
      "type": "keyword",
      "null_value": "NULL"
    }
  }

}

Насколько я понимаю, поле должно появиться в существующих документах, когда я переиндексирую.Поэтому, когда я использую api для переиндексации:

{
  "source": {
    "index": "index_v1"
  },
  "dest": {
    "index": "index_v2",
    "version_type": "external"
  }
}

, я вижу, что отображение для index_v2 не состоит из sexifield, и документы также не состоят из него.Кроме того, эта операция заняла менее 60 мс.

Пожалуйста, укажите мне, что я не понимаю из этого ...

Добавление новых документов в первый индекс (через API Java, для объектау которого нет этого поля (sexifield), так что, вероятно ,astic должен добавить мне поле по умолчанию) с sexifield, также не создает мне это дополнительное поле.

Заранее спасибо за советы.

С уважением

1 Ответ

1 голос
/ 04 июля 2019

отличный вопрос +1 (я кое-что узнал, решая вашу проблему)

Я не знаю ответа на вопрос, как учитывать второе сопоставление (переиндексированное сопоставление) при переиндексации, но вот как я бы обновилпереиндексированный индекс (все документы), как только переиндексация сделана из исходного индекса.Я все еще продолжаю исследовать, чтобы увидеть, есть ли способ рассмотреть значения по умолчанию, которые определены в отображении второго индекса при переиндексации, но сейчас посмотрим, поможет ли это решение ..

POST /index_v2/_update_by_query
{
  "script": {
    "lang": "painless",
    "inline": "ctx._source.sexifield = params.null_value",
    "params": {
      "null_value": "NULL"
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...