Подтвердить что ты не робот

SOLR фиксирует и оптимизирует вопросы

У меня есть сайт для объявлений. Пользователи могут размещать рекламу, редактировать рекламу, просматривать рекламу и т.д.

Всякий раз, когда пользователь ставит объявление, я добавляю документ в solr. Однако я не знаю, когда это сделать. Commit замедляет работу от того, что я прочитал.

Как мне это сделать? Автокомментировать каждые 12 часов или около того?

Также, как мне это сделать с оптимизацией?

4b9b3361

Ответ 1

Собственно, фиксация часто и оптимизация делают вещи очень медленными. Это слишком тяжело.

После дня поиска и чтения материала я узнал об этом:

1- Оптимизация приводит к удвоению индекса при оптимизации, и делает вещи очень медленными.

2- Фиксирование после каждого добавления НЕ является хорошей идеей, лучше совершать пару раз в день, а затем оптимизировать только один раз в день максимум.

3. В файле solrconfig.xml параметр Commit должен быть установлен в "autoCommit", и там он должен быть настроен в соответствии с вашими потребностями.

Ответ 2

Немного подробная информация о Commit/Optimize:

Commit: Когда вы индексируете документы в solr, ни одно из внесенных изменений не появится, пока вы не запустите команду commit. Поэтому время, необходимое для запуска команды фиксации, действительно зависит от скорости, с которой вы хотите, чтобы изменения отображались на вашем сайте через поисковую систему. Однако это тяжелая операция, и поэтому это должно выполняться партиями после каждого обновления.

Оптимизация: это похоже на команду defrag на жестком диске. Он будет реорганизовать индекс в сегменты (увеличивая скорость поиска) и удалить любые удаленные (замененные) документы. Solr - это хранилище данных только для чтения, поэтому каждый раз, когда вы индексируете документ, он помечает старый документ как удаленный, а затем создает совершенно новый документ для замены удаленного. Оптимизация удалит эти удаленные документы. Вы можете увидеть индекс поиска по сравнению с удаленным документом, перейдя на страницу статистики Solr и просмотрев номера numDocs и maxDocs. Разница между двумя номерами - это количество удаленных (не подлежащих поиску) документов в индексе.

Также Optimize строит новый индекс NEW от старого, а затем по завершении переключается на новый индекс. Поэтому команде требуется удвоить пространство для выполнения действия. Поэтому вам нужно будет убедиться, что размер вашего индекса не превышает% 50 вашего свободного места на жестком диске. (Это правило, обычно требуется меньше 50% из-за удаленных документов)

Сервер индексирования/поисковый сервер: Пол Браун был прав в том, что лучший дизайн для solr - это сервер, выделенный и настроенный на индексирование, а затем реплицировать изменения на поисковые серверы. Вы можете настроить сервер индексирования на наличие нескольких конечных точек индекса.

eg: http://solrindex01/index1; http://solrindex01/index2

И поскольку индексный сервер не ищет контент, вы можете настроить его с помощью разных папок памяти и команд прогрева индекса и т.д.

Надеюсь, это полезная информация для всех.

Ответ 3

Как обычно это делается, это выполнять операции фиксации/оптимизации на Solr node, расположенные вне пути запроса для ваших пользователей. Для этого требуется дополнительное оборудование, но это гарантирует, что ограничение производительности операций индексирования не влияет на ваших пользователей. Репликация используется для периодического переноса оптимизированных индексных файлов с главного node на узлы, которые выполняют поисковые запросы для пользователей.

Ответ 4

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