1 20 21 package com.Yasna.forum.database; 22 23 import java.util.BitSet ; 24 import java.util.ArrayList ; 25 import java.io.IOException ; 26 27 import org.apache.lucene.index.Term; 28 import org.apache.lucene.index.TermDocs; 29 import org.apache.lucene.index.IndexReader; 30 import org.apache.lucene.search.Filter; 31 32 48 public class MultiFilter extends org.apache.lucene.search.Filter { 49 50 55 private ArrayList filterList; 56 57 60 public MultiFilter() { 61 filterList = new ArrayList (); 62 } 63 64 72 public MultiFilter(int initialCapacity) { 73 filterList = new ArrayList (initialCapacity); 74 } 75 76 81 public void add(Filter filter) { 82 filterList.add(filter); 83 } 84 85 public BitSet bits(IndexReader reader) throws IOException { 86 int filterListSize = filterList.size(); 91 if (filterListSize > 0) { 92 BitSet bits = ((Filter)filterList.get(0)).bits(reader); 93 for (int i=1; i<filterListSize; i++) { 94 bits.and( ((Filter)filterList.get(i)).bits(reader) ); 95 } 96 return bits; 97 } 98 else { 103 return new BitSet (reader.maxDoc()); 104 } 105 } 106 } 107 | Popular Tags |