2009-01-20 99 views
5

我正在考虑是否为我当前的项目选择NHibernate.Search或PostgreSQL的嵌入式全文搜索支持。PostgreSQL全文搜索与NHibernate.Search通过Lucene.Net

在.NET平台上,我们正在使用PostgreSQL RDBMS和NHibernate ORM,因为您已经猜到了。你上面提到的全文引擎有什么经验?我应该注意哪些缺陷?

+0

在这个问题上的一个很好的答案取决于你想要如何搜索以及你想要搜索什么。 – Paco 2010-05-06 10:39:13

回答

2

我会推荐使用Lucene,尽管我认为Postgres是一个很棒的产品。对于自然语言文本搜索,Lucene的算法非常“开箱即用”。换句话说,当你构建最简单的搜索时,它似乎“做正确的事情”(也就是说,你的直觉会暗示它应该做什么)。

Postgres做得很好。这就是它的设计目的。但比较两个以下的实现:

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构建灵活的文本查询功能更容易。它更适合它。