В ближайшее время я загружу свой веб-сайт в VPS. Это сайт для объявлений, в котором Solr интегрирован с MySql.
Solr обновляется всякий раз, когда новая классификация помещается или удаляется.
Мне нужен способ сделать commit()
и optimize()
автоматизированным, например, раз в 3 часа или около того.
Как я могу это сделать? (Подробности Пожалуйста) Когда это идеальное решение для оптимизации?
благодаря
Вы можете настроить задачу cron, которая периодически выполняет удаленный вызов интерфейса Solr REST, например:
curl 'http://<SOLR_INSTANCE_URL>/update?optimize=true'
Найдите дополнительную информацию об обновлении индекса Solr.
Цитирование учебника Solr :
Commit может быть дорогостоящей операцией, поэтому лучше всего внести изменения в индекс в пакете, а затем отправить команду commit в конце. Существует также команда optimize, которая делает то же самое, что и commit, в дополнение к объединению всех сегментов индекса в один сегмент, что ускоряет поиск и устранение удаленных документов.
UPDATE: Кроме того, функция auto-commit может быть включена в файле solrconfig.xml (в разделе UpdateHandler
):
<autoCommit> <maxDocs>10000</maxDocs> <!-- maximum uncommited docs before autocommit triggered --> <maxTime>86000</maxTime> <!-- maximum time (in MS) after adding a doc before an autocommit is triggered --> </autoCommit>