2009-04-17 67 views
0

我一個question昨天發佈了關於使用NHibernate搜索與NHibernate V2並沒有收到答覆。這已向我確認,我需要重新考慮使用NHibernate.Search並查看其他全文搜索解決方案。我希望能夠索引和搜索文檔並在搜索結果中顯示文檔的相關摘錄。淨全文檢索庫

如果我不能使用Nhibernate.search那裏似乎沒有多大點Lucene集成到NHibernate的自己,有什麼替代方案。我看過Searcharoo,我喜歡它,因爲它的代碼非常完備,我很樂意將它集成到Nhibernate中。

是否還有更多的圖書館我應該看?我應該使用沒有Nhibernate.Search的lucene嗎?

回答

7

Lucene.Net是我用過的各種項目來做到這一點。

LINQ to Lucene是我在一個項目上工作,解決了一些你的問題。 Lucene要求您嚴格控制索引和搜索。當你想爲大系統構建一個高性能搜索引擎時,這非常棒。糟糕的是,如果你只想在幕後「有效」的東西。

我寫了一個職位上LINQ To Lucene的LINQ to SQL類,但它非常適用於任何POCO情況。

更新: 我不熟悉Nhibernate到Lucene系統,也不知道它是如何配置的。 通過使用Lucene.Net構建真正的搜索子系統,我遇到了幾個挑剔的事情,你必須處理建立索引和查詢它們。

  • 搜索索引字段存儲很不一樣不同於數據庫。很少有數據庫模式(或ORM實體)與索引「模式」之間的一對一映射。
  • 如果你想訪問高級搜索引擎功能,如加權查詢,關鍵字突出顯示,自定義比較器(分揀機)(等等) - 你會發現一個自動ORM < - > Lucene橋樑將是不夠的。所有這些事情都需要手動構建查詢對象圖,而不是使用基本的Lucene查詢語法。

本質上,如果你想讓你的搜索引擎不僅僅是最基本的東西,那麼你會直接使用Lucene.Net。

+0

screamingpens.com不再是:-( – 2010-01-11 19:47:58

0

我用DotLucene但遇到了一些問題。一個重要的原因是它需要完全信任才能運行。

因爲我已經搬到使用SearchAroo:http://www.searcharoo.net/

它採用了XML數據存儲,而且我發現它的性能是非常相似點Lucene的。

如果你正在尋找另一種選擇,我一定會看看。