Является ли Lucene.net хорошим выбором для поиска по сайту в базе данных товаров 1M? (отказ от полнотекстового поиска SQL Server 2005)

В настоящее время у нас работает SQL Server 2005, и мы используем его полнотекстовый поиск для поиска по сайту электронной коммерции по базе данных о миллионах продуктов. Я максимально оптимизировал его (я думаю), и мы все еще видим время поиска в пять секунд.

(Нам не нужны функции индексации сайта или PDF (и т. Д.)... ТОЛЬКО скорость "Google" для поиска по сайту.)

Я собирался купить dtSearch, но теперь я понимаю, что могу просто использовать Lucene.net и сэкономить 2500 долларов за лицензию на два сервера.

Я прочитал в посте, что Lucene.Net не подходит для поиска по сайту.

Кто-нибудь еще использовал Lucene.Net из ASP.Net? Это занимает много памяти?

Любые проблемы?

Любые комментарии?

2 ответа

Решение

Мы использовали Lucene целую вечность, и он работал очень хорошо для нас. У нас есть базы данных с> 1М записей, а запросы Lucene возвращаются за пару миллисекунд.

Для нас у нас есть небольшой недостаток в том, что новые записи могут быть добавлены в базу данных в любое время, и переключение между индексированием и запросами может быть относительно медленным (поэтому первый поиск после обновления индекса занимает, возможно, 400 мс вместо обычных 5 мс), Но для веб-сайта продукта, где вы можете делать пакетные обновления, вы должны быть золотыми.

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

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

Другие вопросы по тегам