Lucene.NET с SQL SERVER 2000

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

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

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


person bkhanal    schedule 08.09.2009    source источник


Ответы (2)


  • Вы можете начать с Марка Крелленштейна «Поиск Engine vs DBMS', чтобы узнать, подходит ли вам система полнотекстового поиска, такая как Lucene. Теоретически Lucene должна быть быстрее, чем SQL для текстового поиска, но ваш пробег может отличаться.
  • Вы можете выполнять добавочные обновления с помощью Lucene, которые немного похожи на репликацию базы данных. Это обеспечивает синхронизацию индекса Lucene с базой данных.
person Yuval F    schedule 08.09.2009
comment
Спасибо за Ваш ответ. Я просмотрел довольно много руководств и сейчас могу индексировать записи БД в локальный файл. Как я уже сказал, моя БД содержит около 10 миллионов записей, Lucene требует времени, если я создаю индекс с нуля. Мой подход: -- Создайте службу Windows, которая ищет любые обновления в базе данных (каждый час) и поддерживает синхронизацию индекса с записями базы данных. Скажем, добавлено 2000 записей в час, это негативно повлияет на обновление индекса. Замедляется ли поиск во время построения индекса? - person bkhanal; 08.09.2009
comment
Ну, в первую очередь вам нужно каким-то образом поместить записи в индекс Lucene. Лучший способ для этого — создать индекс с нуля в автономном режиме. Получив это, вы можете использовать добавочные обновления, как вы предлагаете. У меня есть только опыт работы с Java Lucene с MySQL, но я полагаю, что проблемы аналогичны вашим настройкам - 2000 записей в час или около 40 в минуту кажутся разумными для обновлений. Это может замедлить поиск. См. lucidimagination.com/Community/Hear -от-Экспертов/Статьи/ - person Yuval F; 09.09.2009

Вот статья об использовании LINQ to Lucene для работы с SQL. Это может указать вам в правильном направлении.

person Bernesto    schedule 30.09.2009