1 20 21 package org.nemesis.forum.search; 22 23 import java.io.IOException ; 24 import java.util.BitSet ; 25 26 import org.apache.lucene.index.IndexReader; 27 import org.apache.lucene.index.Term; 28 import org.apache.lucene.index.TermDocs; 29 import org.apache.lucene.search.Filter; 30 31 49 public class FieldFilter extends Filter { 50 51 private String field; 52 private String value; 53 private Term searchTerm; 54 55 66 public FieldFilter(String field, String value) { 67 this.field = field; 68 this.value = value; 69 searchTerm = new Term(field, value); 70 } 71 72 public BitSet bits(IndexReader reader) throws IOException { 73 BitSet bits = new BitSet (reader.maxDoc()); 75 TermDocs matchingDocs = reader.termDocs(searchTerm); 78 try { 79 while(matchingDocs.next()) { 80 bits.set(matchingDocs.doc()); 81 } 82 } 83 finally { 84 if (matchingDocs != null) { 85 matchingDocs.close(); 86 } 87 } 88 return bits; 89 } 90 } 91 | Popular Tags |