2011-07-04 21 views
1

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

あなたは:http://lucene.apache.org/java/2_9_0/api/contrib-misc/org/apache/lucene/misc/ChainedFilter.html

のLuceneの.NET分布のChainedFilterもあるを参照してください

ChainedFilterのようなものを使用することができます。

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

別のオプションは、それが多くのコードではないJavaアプリケーションのポートとしてそれを実装することです。

+0

ありがとうございますが、私はChainedFilterがLuceneの.Netポートに実装されていないことを理解しました。 – Edward83

+0

これを参考に編集しました。これに関するいくつかのメーリングリストの投稿もあります。 – fyr

+0

ok)私はそれを試してみる) – Edward83