2011-05-17 59 views
7

我想用[Fluent]基於NHibernate的數據訪問將全文搜索整合到.NET應用程序中。到目前爲止,Lucene.NET和NHibernate Search組合似乎是最合理的選擇。然而,有幾個項目建立在Lucene之上,據說可以緩解Lucene的複雜性並增加新的功能(例如Solr或ElasticSearch)以及圍繞這些庫的一些.NET包裝。那麼,我的項目有哪些[最佳]選項?基於NHibernate的全文檢索

回答

2

如果您已經擁有nhibernate數據訪問權限,那麼您應該使用nhibernate搜索,因爲它集成得非常好,而且學習曲線並不太陡峭。

Solr和Elasticsearch更系統獨立(例如restful api),但需要更多管道工作。

而且你有很多的資源在這裏:https://stackoverflow.com/questions/tagged/nhibernate.search

+0

感謝您的回覆,Mathieu(+)。您是否認爲通過Solr或ElasticSearch實現的功能(例如可伸縮性)將這些管道代碼投入一些工作量是合理的? – 2011-05-17 21:55:37

+0

我使用NHS來索引15GB的文檔,並沒有遇到性能問題。你要索引多少數據?它會經常更新嗎? – mathieu 2011-05-18 06:56:41

+0

這是一個創業型的B2B應用程序,文本的數量取決於我們的銷售人員可以獲得多少客戶。因此,可伸縮性真的是一個值得關注的問題。不過,我認爲我們不會很快達到15GB的水平。 – 2011-05-18 17:35:54

1

既然你是在.NET上,Solr的和Hibernate Search無法真正的幫助,可能會要求你獲得專門用於搜索另一臺服務器只。我對NHibernate Search等不熟悉,但是隨着.NET端口的發展,它最有可能落後於真正的Java事物。

如果您可以更改您的數據訪問層,請檢出RavenDB。它是用C#/ .NET在Lucene之上編寫的,因此您可以獲得一個快速的無模式文檔數據庫和一個全文搜索引擎。

+0

感謝您的回覆。不幸的是,爲應用程序切換到另一種數據訪問技術幾乎是不可能的,並且當然只能通過全文搜索才能證明其合理性,儘管RavenDB絕對值得一試。 – 2011-05-17 22:19:12

+0

你肯定是對的:NH.Search沒有積極維護,除了確保它與最新的NH版本相比 - 它從最初移植到現在還沒有更新。 – 2011-05-17 23:00:06