共享一个filter合并类

[不指定 2008/06/04 18:23 | by edwardproAdmin ]
| |

正好在用随便写了一个,把很多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);
}

}

技术私语 | 评论(0) | 引用(0) | 阅读(431)
发表评论
表情
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]