2009-01-20 6 views
5

Je considère s'il faut choisir NHibernate.Search ou la prise en charge intégrée de recherche de texte intégral de PostgreSQL pour mon projet actuel.Recherche de texte intégral PostgreSQL vs NHibernate.Search via Lucene.Net

Nous utilisons, comme vous l'avez déjà deviné, RDBMS PostgreSQL avec NHibernate ORM sur la plate-forme .NET. Quelle expérience avez-vous sur les moteurs de texte intégral mentionnés ci-dessus? Y a-t-il des pièges que je devrais connaître?

+0

Une bonne réponse à cette question dépend de la façon dont vous voulez chercher et de ce que vous voulez rechercher. – Paco

Répondre

2

Je recommanderais d'utiliser Lucene, bien que je pense que Postgres est un excellent produit. Les algorithmes de Lucene fonctionnent très bien "hors de la boîte" pour la recherche de texte en langage naturel. En d'autres termes, lorsque vous construisez simplement la recherche la plus simple possible, il semble juste "faire la bonne chose" (c'est-à-dire, ce que votre intuition suggère qu'il devrait faire). Postgres fait très bien le RDb Mgt

C'est pour ça que ça a été conçu. Mais comparer la mise en œuvre de ce qui suit sur les deux:

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

réutiliser maintenant le même code de requête pour effectuer la recherche suivante:

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

Imaginez ce qu'il faudrait pour mettre en œuvre la requête dans NHibernate.Search par rapport Postgresql. Il ne devrait pas falloir longtemps pour vous convaincre qu'il est plus facile de construire une fonctionnalité de requête de texte flexible avec NHibernate. C'est juste plus naturellement adapté pour cela.

Questions connexes