Я собираюсь бросить в мой голос за Lucene. Хотя SQL Server обеспечивает полную индексацию текста и некоторые возможности поиска, это не самая большая поисковая система. По моему опыту, он не обеспечивает наилучшие результаты или рейтинг результатов, пока у вас не будет значительного объема индексированных предметов (от десятков до нескольких сотен тысяч).
Напротив, Lucene явно является поисковой системой. Это инвертированный индекс, который ведет себя так же, как ваш запуск интернет-поисковой системы мельницы. Lucene предоставляет очень богатую платформу индексирования и поиска, а также некоторые богатые C# и .NET API для запроса индексов. Существует даже LINQ для провайдера Lucene, который позволит вам запрашивать индекс Lucene с LINQ.
Единственным недостатком использования Lucene является то, что вам нужно создать индекс, который является процессом боковой полосы, который выполняется независимо от базы данных. Вы также должны написать собственный инструмент для управления индексом. Ваш поисковый индекс, в зависимости от того, как часто вы его обновляете, может быть не более 100% до последней минуты. Как правило, это не вызывает большого беспокойства, но если у вас есть ресурсы, индекс Lucene должен обновляться каждые несколько минут, чтобы сохранить «свежие».
Я думаю, вам нужно указать немного больше ... –
Слишком расплывчато, но меня интересует, какие ответы подходят. Мы также работаем над инструментами поиска для нашего программного обеспечения. – JoshBaltzell
Пожалуйста, перефразируйте свой вопрос, чтобы не быть субъективным. «Лучший способ» будет варьироваться от человека к человеку. –