2009-10-29 63 views
3

我正在構建一個簡單的搜索表單爲我們的支持票數據庫使用Lucene.Net,我想添加的能力來過濾,例如篩選結果票狀態。什麼是最好的方法來做到這一點?至於我可以看到我有三種選擇:如何結合全文搜索和過濾與lucene.Net

  1. 包括使用Lucene.Net
  2. 從Lucene的得到搜索結果後,應用過濾器我想在我的索引來過濾所有條款,並過濾器通過轉到數據庫來篩選出Lucene返回的結果對過濾器無效。

選項1將擴大我的索引的大小越來越多的每個額外的領域,我想過濾。另一方面,選項2將誇大我的索引大小,在添加新字段進行過濾時會導致問題,並且還會使分頁更加棘手。

這裏有明顯的選擇,還是兩者都可以接受? (和是否有第三個選擇,我不能看?)

回答

2

我就不會擔心指數的大小:-)

我們去選擇1所有的時間,從來沒有Lucene的外部過濾數據。淨。您最終可能需要在lucene.net中檢索大量匹配,然後才能在數據庫中篩選之後獲得「true」匹配數 - 它可能還需要多次往返數據庫。

我們目前在我們的150K文檔中平均有大約100個字段,並且工作得非常好。