Сбой переиндексации из-за исключения SearchContextMissingException

Моя компания использует elasticsearch 2.3.4. У нас есть кластер, который содержит 38 узлов ES, и в последнее время у нас возникла проблема с переиндексацией некоторых наших данных... Мы переиндексировали до очень больших индексов и не имели проблем, но недавно, при попытке переиндексировать гораздо меньшие проиндексирован (менее 10 ГБ) - мы получаем: "SearchContextMissingException [Контекст поиска не найден для id [XXX]]". Мы понятия не имеем, что вызывает эту проблему или как ее исправить. Нам нужно руководство. Кто-нибудь видел это исключение раньше?


person elik    schedule 05.05.2017    source источник
comment
Вы переиндексируете с помощью spark (hive или что-то еще с помощью elasticsearch-hadoop)? С искрой elasticsearch было несколько проблем с тем же исключением.   -  person Nirmal    schedule 05.05.2017
comment
я использую API переиндексации elasticsearch   -  person elik    schedule 05.05.2017


Ответы (2)


Из комментариев github по вопросам, связанным с этим, я думаю, что это может быть избежать, изменив размер партии:

Из документации:

По умолчанию _reindex использует пакеты прокрутки по 1000. Вы можете изменить размер пакета с помощью поля размера в исходном элементе:

POST _reindex
{
  "source": {
    "index": "source",
    "size": 100
  },
  "dest": {
    "index": "dest",
    "routing": "=cat"
  }
}
person Nirmal    schedule 05.05.2017
comment
но согласно документации поле размера не является размером пакета, это количество документов, которые будут переиндексированы в индекс - person elik; 05.05.2017
comment
это размер внутри исходного объекта. Кстати, я цитировал документацию :-) - person Nirmal; 05.05.2017
comment
о.. извините, не видел. попробую и дам знать :) - person elik; 05.05.2017
comment
не повезло, простите! но это, кажется, определенно является частью нескольких PR и обсуждений в их репо и должно быть исправлено в более поздней версии. - person Nirmal; 07.05.2017

У меня была такая же проблема с индексом, который содержит много огромных документов. Мне пришлось уменьшить размер партии до 10 (100 и 50 не работали).

Это был запрос, который сработал в конце:

POST _reindex?slices=5&refresh
{
  "source": {
    "index": "source_index",
    "size": 10
  },
  "dest": {
    "index": "dest_index"
  }
}

Вы также должны установить срезы на количество осколков, которые у вас есть в вашем индексе.

person samy    schedule 21.10.2019