Я имею базу данных SQL MS и имею a varchar
поле, как которое я хотел бы сделать запросы where name like '%searchTerm%'
. Но прямо сейчас это слишком медленно, даже с полнотекстовым индексированием предприятия SQL.
Может кто-то объяснять как Lucene .Net
мог бы помочь моей ситуации? Как индексатор работает? Как запросы работают?
Что сделано для меня, и что я должен сделать?
Я видел этого парня (Michael Neel) подарок на Lucene на встрече группы пользователей - эффективно, Вы создаете индексные файлы (использующий Lucene), и у них есть указатели на то, что Вы хотите (строки базы данных, безотносительно)
http://code.google.com/p/vinull/source/browse/#svn/Examples/LuceneSearch
Очень быстрый, гибкий и мощный.
То, что хорошо с Lucene, является способностью индексировать множество вещей (файлы, изображения, строки базы данных) вместе в Вашем собственном индексном использовании Lucene и затем переводе того назад к Вашему бизнес-домену, тогда как с SQL Server, все это должно быть в SQL, который будет индексирован.
Не похоже, что его слайды закончились там в коде Google.
Эта статья (странно достаточно это находится на вершине результатов поиска Google :) имеет довольно хорошее описание того, как поиск Lucene мог быть оптимизирован.
Правильно настроенный Lucene должен легко победить SQL (пред 2005) поиск полнотекстового индексирования. Если Вы на MS SQL, 2005 и Ваша поисковая производительность являются все еще слишком медленными, Вы могли бы рассмотреть проверку Вашей установки DB.