Lucene.Net, SQL Server, NHibernate, ASP.NET MVC - PullRequest
1 голос
/ 20 августа 2010

Я использую эти технологии: SQL Server 2005, ASP.NET MVC, архитектуру NHibernate / sharp и хотел бы получить некоторый текст с конечной целью представления статистики на веб-основе. У меня есть несколько миллионов ключевых слов и несколько миллионов документов, и я хотел бы выполнить несколько запросов на основе этих документов, проиндексированных по ключевым словам. Я немного поиграл с полнотекстовой индексацией SQL Server, но я не слишком впечатлен. Поэтому мне интересно, может ли Lucene.Net быть альтернативой.

Я никогда не использовал Lucene.Net, но понимаю, что это порт 1: 1 версии Java. Итак, мой первый вопрос: стоит ли изучать книгу «Lucene в действии» - при условии, что Lucene будет правильной «технологией»?

Спасибо.

С наилучшими пожеланиями,

Christian

1 Ответ

4 голосов
/ 20 августа 2010

Ну,

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

Второе - Lucene может действительно лучше подходить.SQL - это, прежде всего, сервер базы данных, и полнотекстовый поиск делает много вещей, но также имеет много ограничений.

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

Тем не менее, будьте осторожны с производительностью.Возможно, вам понадобится КУЛЬТУРНЫЙ СЕРВЕР ВЫСОКОГО КОНЦА, если вы хотите выполнять много запросов параллельно (что может легко произойти с веб-приложением).Это может потребовать, чтобы несколько серверов баз данных выполняли репликации только для чтения - что-то, что SQL Server делает намного проще, чем Lucene (как в: из коробки).

Я предлагаю вам просто получить Lucene и поиграть с ним;) Ненамного больше нужно.

...