六一 二零零八正好在用随便写了一个,把很多filter合并,不是很完善.
import java.io.IOException;
import java.util.ArrayList;
import java.util.BitSet;
import java.util.List;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.Filter;
/**
* @author edward pro
*
*/
public class MultiFilter extends Filter {
/**
*
*/
private List<Filter> filterList = new ArrayList<Filter>();
public List<Filter> getFilterList() {
return filterList;
}
public void setFilterList(List<Filter> filterList) {
this.filterList = filterList;
}
public MultiFilter() {
// TODO Auto-generated constructor stub
}
/*
* (non-Javadoc)
*
* @see org.apache.lucene.search.Filter#bits(org.apache.lucene.index.IndexReader)
*/
@Override
public BitSet bits(IndexReader reader) throws IOException {
// TODO Auto-generated method stub
BitSet bits = new BitSet(reader.maxDoc());
for (Filter filter : this.filterList) {
BitSet tBits = filter.bits(reader);
bits.and(tBits);
}
return bits;
}
public void addFilter(Filter filter) {
this.filterList.add(filter);
}
}
单纯的民主
2008/06/04 18:23 | by


