Подождите, пока осколки обновятся

При индексировании документов с использованием массовой конечной точки можно установить параметр refresh=wait_for, чтобы дождаться обновления сегментов.

Я хочу отключить интервал обновления индекса, отправить все массовые запросы, вызвать конечную точку обновления POST /{index}/_refresh в конце, а затем подождать, пока все обновление не будет завершено.

Можно ли это сделать с помощью API ОС?

Я просмотрел документацию, но не смог найти способа сделать это.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете отключить операцию обновления, изменив refresh_interval на -1. Вы можете сделать это для индексов _all или только для одного из них.

Если вы пытаетесь ускорить скорость индексирования, вы также можете проверить следующую документацию. https://www.elastic.co/guide/en/elasticsearch/reference/current/tune-for-indexing-speed.html

#disable the refresh
PUT index/_settings
{
  "refresh_interval": "-1"
}

#complete the bulk
POST /index/_bulk

#re-enable the refresh
PUT index/_settings
{
  "refresh_interval": null
}

#or just refresh manually
POST index/_refresh

index.refresh_interval Как часто выполнять операцию обновления, которая делает последние изменения в индексе видимыми для поиска. По умолчанию 1 с. Можно установить значение -1, чтобы отключить обновление. Если этот параметр не указан явно набор, шарды, которые не видели поисковый трафик как минимум index.search.idle.after секунды не будут получать фоновые обновления пока они не получат поисковый запрос. Поисковые запросы, которые затрагивают неактивный фрагмент если ожидается обновление, оно будет запущено как часть операция поиска только для этого фрагмента. Такое поведение направлено на автоматически оптимизировать массовое индексирование в случае по умолчанию, когда нет поиски производятся. Чтобы отказаться от такого поведения, явное значение 1 с должно быть установлено в качестве интервала обновления. https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html#index-refresh-interval-setting

после звонка POST index/_refresh, как сделать так, чтобы все балки разошлись по шардам?

cairo 05.07.2024 18:13

Когда вы вызываете конечную точку _refresh, OpenSearch ожидает завершения операции обновления, прежде чем вернуться. Однако перед началом обновления следует убедиться, что все массовые запросы обработаны. Вот пример ответа на вызов _refresh API. { "_shards": { "total": 4, "successful": 2, "failed": 0 } }. Как вы можете видеть в теле ответа, все основные сегменты были успешно обновлены.

Musab Dogan 06.07.2024 23:58

Не знал, что _refresh синхронен, спасибо.

cairo 09.07.2024 21:35

Пожалуйста, @cairo

Musab Dogan 09.07.2024 23:19

Другие вопросы по теме