读书人

在Lucene中怎么得到一个DocIdSet?

发布时间: 2013-01-04 10:04:13 作者: rapoo

在Lucene中,怎样得到一个DocIdSet??
在做一个Filter,用来过滤安全级别不符的文件,所以要重写Filter里面的bits()方法
可是新版Lucene的文档里说bits()方法现在是Deprecated,推荐我使用getDocIdSet()方法
可是这个getDocIdSet()是一个DocIdSet类型的方法。。
请问我该怎样将搜索到得结果转换成一个DocIdSet类型的对象呢?

小弟在此多谢啦
[解决办法]
看那个范例中的 text.jsp文件
[解决办法]
看源代码的实现就有,例如现行版本(2.9.0)的数字范围检索就是用了位图(bitset):标记位做
标记以标记文档 满足/不满足

MultiTermQueryWrapperFilter类
看下这样的调用:

1.MultiTermQueryWrapperFilter.getDocIdSet(IndexReader) line: 171
2.MultiTermQueryWrapperFilter$2(MultiTermQueryWrapperFilter$TermGenerator).generate (IndexReader, TermEnum) line: 115
3.MultiTermQueryWrapperFilter$2.handleDoc(int) line: 169
4.OpenBitSet.set(long) line: 233

算是一个实例

读书人网 >网络基础

热点推荐