2009-01-20 102 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構建靈活的文本查詢功能更容易。它更適合它。