Elasticsearch: некоторые поля появляются сразу, а некоторые с задержкой - PullRequest
2 голосов
/ 29 мая 2020

У меня очень странная ситуация

После отправки документов в индекс ES и создания документов некоторые поля в документе появляются сразу, а некоторые с задержкой. То есть некоторые поля имеют null, [] и 0 (в зависимости от типа поля) вместо значений, отправляемых в индекс.

Через 5-10 минут эти поля становятся заполнены фактическими значениями.

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

Поиск этой проблемы в гугле ничего не дал.

Что можно изменить в настройках индекса или группы, чтобы документы не отображаются в поиске с пустыми значениями?

Версия Elasticsearch: 7.6.0

Обновление:

Для большего контекста я добавил экраны печати:

1) Так выглядит документ в Кибане сразу после добавления: enter image description here

2) И так документ выглядит через 5-10 минут: enter image description here

В настройках индекса refresh_interval установлен на 1s

Добавление refresh = "wait_for" в массовый запрос ничего не изменило

1 Ответ

0 голосов
/ 30 мая 2020

Пожалуйста, проверьте refre sh параметр вашего индекса, по умолчанию 1 секунда, но его можно настроить. Также проверьте, когда вы отправляете один за другим, вы не делаете явное refre sh или не используете wait_for param в запросе.

Согласно официальному do c wait_for param

Прежде чем отвечать, дождитесь, когда изменения, внесенные в запрос, станут видимыми с помощью refre sh. Это не приводит к немедленному обновлению sh, скорее, он ждет, пока произойдет refre sh. Elasticsearch автоматически обновляет сегменты, которые менялись каждые

Решение: для массового запроса используйте параметр wait_for, использование этого параметра не вернет результат до тех пор, пока не произойдет refre sh, и как только вы получите ответ, значения, которые вы отправляете, будут доступны для поиска.

Читать далее https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-refresh.html#_choosing_which_setting_to_use

...