Публикация большого каталога файлов в SOLR с помощью инструмента post, как сделать коммит после каждого файла - PullRequest
0 голосов
/ 15 июня 2019

Я использую инструмент публикации Java для Solr, чтобы загрузить и проиндексировать каталог документов. Есть несколько тысяч документов. Solr выполняет коммит только в самом конце процесса, и иногда все останавливается до его завершения, поэтому я теряю всю работу.

Есть ли у кого-нибудь методика извлечения названия каждого документа и вызова поста, чтобы вы получили коммит для каждого документа? Вместо большого коммита всех документов в конце?

Ответы [ 2 ]

0 голосов
/ 16 июня 2019

Передача после каждого документа является излишним для исполнения , в любом случае довольно странно, что вам приходилось повторять что-либо с самого начала, если что-то пойдет не так.Я предлагаю серьезно изменить стратегию индексирования, которую вы используете, вместо того, чтобы исследовать другие способы фиксации.

Учитывая, что, если у вас нет другого способа изменить конфигурацию фиксации, я предлагаю настроить autocommit в вашей коллекции / индексе Solr или использовать параметр commitWithin, как предложено @MatsLindh.Просто знайте, есть ли у инструмента, который вы используете, возможность добавить этот параметр.

autoCommit

Эти настройки определяют, какчасто ожидающие обновления будут автоматически помещаться в индекс.Альтернативой autoCommit является использование commitWithin, которое можно определить при выполнении запроса на обновление к Solr (т. Е. При отправке документов) или в запросе на обновление.

0 голосов
/ 15 июня 2019

На странице справки для инструмента post:

Other options:
  ..
  -params "<key>=<value>[&<key>=<value>...]" (values must be URL-encoded; these pass through to Solr update request)

Это должно позволить вам использовать -params "commitWithin=1000", чтобы убедиться, что каждый документ отображается в течение одной секунды после добавления в индекс.

...