Моя компания использует elasticsearch 2.3.4. У нас есть кластер, который содержит 38 узлов ES, и в последнее время у нас возникла проблема с переиндексацией некоторых наших данных... Мы переиндексировали до очень больших индексов и не имели проблем, но недавно, при попытке переиндексировать гораздо меньшие проиндексирован (менее 10 ГБ) - мы получаем: "SearchContextMissingException [Контекст поиска не найден для id [XXX]]". Мы понятия не имеем, что вызывает эту проблему или как ее исправить. Нам нужно руководство. Кто-нибудь видел это исключение раньше?
Сбой переиндексации из-за исключения SearchContextMissingException
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
но согласно документации поле размера не является размером пакета, это количество документов, которые будут переиндексированы в индекс
- person elik; 05.05.2017
это размер внутри исходного объекта. Кстати, я цитировал документацию :-)
- person Nirmal; 05.05.2017
о.. извините, не видел. попробую и дам знать :)
- person elik; 05.05.2017
не повезло, простите! но это, кажется, определенно является частью нескольких 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