2015-12-15 48 views
0

我正在構建一個C#窗體應用程序,用於搜索數據庫並顯示結果。我正在試圖找到關於如何使用Lucene創建構面的指南,但似乎我不能。我正在創建索引,並且我能夠搜索數據庫,但是我想爲結果創建方面。有沒有任何指導或項目作爲例子?這裏如何使用Lucene.Net創建構面

編輯是鏈接到我的項目到目前爲止 https://github.com/assignment128A-adopse/Assignment

任何幫助/建議將是有益的

回答

2

有幾個選項。

選項#1

在Lucene.Net 4.8.0,您可以使用Lucene.Net.Facet模塊設置面搜索。請參閱Lucene API documentation

選項#2

你可以使用簡單的面搜索的contrib項目,但據我所知,它只組爲你的方面,並得到他們的計數。我相信,如果您需要真正列出與所選方面匹配的內容,您必須自己構建。

https://cwiki.apache.org/confluence/display/LUCENENET/Simple+Faceted+Search

https://github.com/apache/lucenenet/tree/812e1c541f1a00392391c5761fd3dcb7b0aedd88/src/contrib/SimpleFacetedSearch

https://github.com/apache/lucenenet/blob/3.0.3/test/contrib/SimpleFacetedSearch/TestSimpleFacetedSearch.cs

選項#3

使用BoboBrowse.Net。它是一個完整的分面搜索引擎,不僅可以計算方面的數量,還可以選擇方面以及通過內置排序和分頁檢索匹配列表。還有很多內置的方面類型,如範圍和地理位置。

注意,雖然演示是在MVC做,將其設置在Windows Forms是類似的(更容易其實是因爲你當選擇改變時不需要使用AJAX來重新加載結果)。

選項#4

使用SOLR。它是一個基於服務器的解決方案,運行在Java的can be set up to do faceted search上。

還有一個.NET client for SOLR - (faceting documentation

+0

謝謝你的評論。我想我要和BoboBrowse.Net一起去。我到底該如何使用演示中提供的mvc代碼到我的Windows窗體應用程序中。它有點混亂。謝謝你的時間。 – Nomik

+0

BoboBrowse.Net僅僅是一個對象模型,所以它在任何UI技術中的工作原理都是一樣的。首先,您需要創建一個適合搜索的搜索索引(https://github.com/NightOwl888/FacetedSearchPrototype/blob/master/src/FacetedSearchPrototype/Controllers/SearchController.cs#L245)。接下來,您應該將BoboIndexReader設置爲應用程序中的單例實例,並在應用程序關閉時處理它。 – NightOwl888

+0

在打開閱讀器之前(在應用程序啓動時或您可選擇使用),您需要[設置您的構面](https://github.com/NightOwl888/FacetedSearchPrototype/blob/master/src/FacetedSearchPrototype/Controllers/SearchController.cs#L378)可以做到[在XML](https://github.com/NightOwl888/BoboBrowse.Net/wiki/Spring.Net-XML-Configuration))。然後,你勾選你的用戶界面(經常複選框),並在每個複選框點擊你應該[執行瀏覽](https://github.com/NightOwl888/FacetedSearchPrototype/blob/master/src/FacetedSearchPrototype/Controllers/SearchController。 cs#L468)更新UI結果。 – NightOwl888