2011-07-04 33 views
1

如何在一次搜索中合併多個過濾器?Lucene.net中的多個過濾器

比如我有記錄與分析的領域冠軍,而不是分析的領域ID1ID2ID3RELEASE_DATE。我想使用id1,id2,id3和release_date的特定過濾器查找所有記錄;所以,我有:

RangeFilter refReleaseDateFilter = new RangeFilter("release_date", 
      refFromDateTimeTerm.Text(), refToDateTimeTerm.Text(), true, true); 

RangeFilter refId1Filter = new RangeFilter("id1", 
      refFromId1Term.Text(), refToId1Term.Text(), true, true); 

RangeFilter refId2Filter = new RangeFilter("id2", 
      refFromId2Term.Text(), refToId2Term.Text(), true, true); 

RangeFilter refId3Filter = new RangeFilter("id3", 
      refFromId3Term.Text(), refToId3Term.Text(), true, true); 

類IndexSearcher的不提供的過濾器陣列的方法搜索

請幫我:)謝謝!:)

回答

3

你可以使用像一個ChainedFilter

看到:http://lucene.apache.org/java/2_9_0/api/contrib-misc/org/apache/lucene/misc/ChainedFilter.html

也有在Lucene中的.NET分佈ChainedFilter。

http://www.koders.com/csharp/fidB8682543372DDC9772496D453F39957A94E58466.aspx?s=system#L3

另一種選擇是實現它爲Java應用程序是沒有那麼多碼的端口。

+0

fyr謝謝,但據我所知ChainedFilter沒有在Lucene的.Net端口中實現。 – Edward83

+0

我編輯了這個參考。這裏還有幾個郵件列表文章。 – fyr

+0

好的)我會試試看) – Edward83