Я полный solr noob, поэтому я, вероятно, не могу найти важной информации здесь.solr update/json висит полу-случайным образом
Solr версия: 10.4.2 Платформа: Mac OS X
Я пытаюсь добавить около 5000 документов в пустой индекс. Документов есть 4 полей:
- идентификатор (строка, индексируется, сохраненный)
- названия (solr.TextField, индексировать не сохраняется)
- ключевых слов (solr.TextField, несколько значений, индексированный, не сохраняется)
- содержания (solr.TextField, индексируется, не сохраняется)
Я использую update/json
для вставки документов в партиях от 100 в сплошном цикле (что делает новый запрос HTTP на update/json
конечной точки для каждой партии). Проблема становится лучше, если я добавлю, например, задержка в 100 мс между каждым запросом. Если я задерживаю полную секунду, он полностью уходит, но это явно неприемлемо медленно.
Я работал над этим, добавляя очень короткие таймауты для своих HTTP-запросов (1 секунду) и применяя логику повтора. Он работает, но, конечно, я все время раздражаюсь, когда он повторяет попытку.
Мой процесс часто зависает в ожидании ответа solr в какой-то момент во время процесса. Например, если я начну с новым ядром и проверить это прямо сейчас, это мои результаты для каждого прогона в своей очереди:
- повиснуть на 45-й партии, Solr админы показывают 3,280 документов
- висят на 52-е партия, Solr админы показывают 3,788 документов
- свисает на 14-й партии, Solr админы показывают 3,788 документов
- свисает на 17-й партии, Solr админы показывают 3,788 документов
- успешно завершает все партии, Solr админы показывают 4,043 документов
Вход в систему solr admin не показывает выход во время любого из этих прогонов. В любой момент после неудачного или успешного запуска я могу запросить индекс и получить разумные результаты с учетом данных, которые были добавлены.
Обработчик запросов update/json
- это «неявно добавленный» - он не указан в моем файле solrconfig.xml.
Я попытался переключить механизм блокировки от нативного к простому без изменений в поведении.
Любая помощь, которую вы можете предложить, была бы весьма признательна. Я не знаю, с чего начать.
Дополнительная информация:
1: Это, кажется, висит навсегда. Под «зависанием» я имею в виду, что Solr никогда не отвечает на HTTP-запрос. Если я отменим запрос и отправлю его снова, он, как правило, отлично работает сразу. Я дал ему подождать около 10 минут для ответа.
2: Мой solrconfig.xml имеет следующее:
<updateHandler class="solr.DirectUpdateHandler2">
<updateLog>
<str name="dir">${solr.ulog.dir:}</str>
</updateLog>
<autoCommit>
<maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
</autoSoftCommit>
</updateHandler>
Я добавил обновление к моему вопросу о зависаниях и настройках фиксации (я думаю ...) Я буду искать журналы на сервере и посмотреть, что я могу расшифровать там. Прямо сейчас я работаю «отлично», установив очень низкий тайм-аут для HTTP-запросов (1 секунду) и повторив время ожидания. Это медленно, но это работает. – gwcoffey