2009-09-08 3 views
0

У меня есть база данных SQL 2000 с примерно 10 миллионами строк, и мне нужно сделать запрос, чтобы получить информацию о продукте на основе полного/частичного текстового поиска. На основании этого мне нужно присоединиться к другим таблицам, чтобы проверить мой бизнес-процесс. У меня это реализовано с использованием SQL proc, но я могу только проверять около 6 строк в секунду (без потоков .. его длинная бизнес-логика). Я пытаюсь найти лучший способ повысить производительность. Lucene.NET может помочь в этом. У меня есть пара вопросов.Lucene.NET с SQL SERVER 2000

Можете ли вы указать мне правильные источники.

При построении индекса на Lucene, как мне синхронизировать с базой данных SQL и lucene DB? Как вы думаете, Lucene может дать реальную прибыль?

ответ

1
  • Вы можете начать с Mark Krellenstein's 'Search Engine versus DBMS', чтобы узнать, является ли полнотекстовая поисковая система, такая как Lucene, решением для вас. Теоретически, Lucene должен быть быстрее, чем SQL для текстового поиска, но ваш пробег может отличаться.
  • Вы можете делать инкрементные обновления с помощью Lucene, которые немного похожи на репликацию базы данных. Это позволяет синхронизировать индекс Lucene с базой данных.
+0

Спасибо за ваш ответ. Я просмотрел довольно много учебников и в тот момент, когда я могу индексировать записи БД в локальный файл. Как я уже сказал, моя БД насчитывает около 10 миллионов записей, Lucene занимает некоторое время, если я создаю индекс с нуля. Мой подход: - Пропустить службу Windows, которая ищет любое обновление в базе данных (каждый час) и сохраняет индекс в синхронизации с записями базы данных. Скажите, что добавлено 2000 записей/час, это будет отрицательно влиять на обновление индекса. Увеличивает ли поиск во время создания индекса? – bkhanal

+0

Ну, вам нужно как-то получить записи в индекс Lucene в первую очередь. Лучшим способом для этого является создание индекса с нуля в автономном режиме. После этого вы можете использовать инкрементные обновления, как вы предлагаете. У меня есть только опыт Java Lucene с MySQL, но я считаю, что проблемы схожи в вашей настройке - 2000 записей в час, или около 40 в минуту, кажется разумным для обновлений. Это может замедлить поиск. См. Http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Scaling-Lucene-and-Solr –