PostgreSQL全文搜索与NHibernate.Search通过Lucene.Net

Art*_*rov 5 lucene postgresql nhibernate full-text-search

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

正如您已经猜到的,我们正在使用.NET平台上的带有NHibernate ORM的PostgreSQL RDBMS.您对上述全文引擎有什么经验?我应该注意哪些陷阱?

jas*_*hin 2

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

Postgres 在 RDb 管理方面做得很好。这就是它的设计目的。但比较以下两者的实现:

Search for "google" or "yahoo" or "msn" followed by "search engine".
Run Code Online (Sandbox Code Playgroud)

现在重用相同的查询代码来执行以下搜索:

Search for "google" and "yahoo" and "msn" and "search engine". 
Run Code Online (Sandbox Code Playgroud)

想象一下在 NHibernate.Search 和 Postgresql 中实现查询需要什么。很快您就会相信使用 NHibernate 构建灵活的文本查询功能会更容易。它只是更自然地适合它。