Сравнение:Полнотекстовый поиск по базе данных в поисковой системе (Lucene)
-
08-07-2019 - |
Вопрос
С точки зрения stackoveflow.com (команда из 2-3 инженеров, создающих проект веб-сайта, предназначенного для масштабирования), имеет ли смысл тратить усилия на ранних этапах процесса разработки на создание поиска на основе Lucene/Autonomy… в отличие от базы данных, основанной на базе данных? полнотекстовый поиск.
За и против:
При зрелой реализации Lucene, такой как nutch или автономия, стоимость перехода на Lucene (что неизбежно) на более позднем этапе незначительна.
В больших объемах добавить дополнительные индексные серверы (скажем, с помощью nutch) для поддержания растущего поискового индекса относительно легко.
При реализации Lucene мне, скорее всего, понадобится дополнительный сервер для хранения индекса в памяти (гораздо раньше в процессе масштабирования).
Решение
Производительность полнотекстового поиска в базе данных варьируется от базы данных к базе данных, но это, безусловно, самый простой вариант настройки.Так что начните с этого и переходите к lucene или sphinx, если это окажется слишком медленным.
Другие советы
Однако вам следует держать его изолированным — не начинайте разбрасывать SELECT по всему коду, если вы знаете, что замените их запросом поисковой системы.Оберните полнотекстовый поиск в вашей БД тонким слоем абстракции, который гарантирует, что вы не будете использовать возможности базы данных там, где не следует.
Однако я поддерживаю принятый ответ: преждевременная оптимизация здесь определенно является злом.