Использование Sunspot для создания представлений индекса — разумно ли это?

В настоящее время мы разрабатываем приложение, в котором несколько «индексных» представлений используют множество виртуальных атрибутов. В то же время нам требуется функциональность полнотекстового поиска.

Решение, которое мы выбрали, состоит в том, чтобы использовать Sunspot/Solr для индексации моделей, включая виртуальные атрибуты. Затем мы используем Sunspot для извлечения правильных записей, их сортировки, поиска и т. д. Все это работает достаточно хорошо в нашей настройке разработки.

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

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

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

Спасибо за помощь
Эрвин


person ErwinM    schedule 19.06.2011    source источник


Ответы (1)


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

Если можете, настройте сервер на автоматическую фиксацию каждые x секунд (в зависимости от размера индекса и нагрузки на сервер). Таким образом, у вас не будет флуда коммитов, при сохранении задержки с известным максимальным интервалом.

person lindstromhenrik    schedule 20.06.2011