Полнотекстовый поиск PostgreSQL против NHibernate.Search через Lucene.Net - PullRequest
5 голосов
/ 20 января 2009

Я подумываю, стоит ли выбирать встроенную поддержку полнотекстового поиска NHibernate.Search или PostgreSQL для моего текущего проекта.

Мы используем, как вы уже догадались, PostgreSQL RDBMS с NHibernate ORM на платформе .NET. Какой опыт у вас в вышеупомянутых полнотекстовых движках? Есть ли какие-либо подводные камни, о которых я должен знать?

1 Ответ

2 голосов
/ 03 апреля 2009

Я бы порекомендовал использовать Lucene, хотя я думаю, что Postgres - отличный продукт. Алгоритмы Lucene отлично работают "из коробки" для поиска текста на естественном языке. Другими словами, когда вы просто создаете простейший из возможных поисков, он просто «делает правильные вещи» (то есть то, что ваша интуиция подсказывает, что он должен делать).

Postgres делает RDb Mgt очень хорошо. Вот для чего он был разработан. Но сравните реализацию следующего на обоих:

Search for "google" or "yahoo" or "msn" followed by "search engine".

Теперь повторно используйте тот же код запроса для выполнения следующего поиска:

Search for "google" and "yahoo" and "msn" and "search engine". 

Представьте, что потребуется для реализации запроса в NHibernate.Search против Postgresql. Не нужно много времени, чтобы убедить себя, что с помощью NHibernate проще создать гибкую функциональность текстовых запросов. Это просто более естественно подходит для этого.

...