apache lucene cutom filter

apache filter 主要作用是缩小搜索范围,在结果返回之前进行过滤,比较典型的场合是某些文档有多种安全级别,最高级别的文档不能被搜到。

下面是一个例子,作个记录,以备后用。


/**

*只搜索句子中单词数不超过10个的句子

*这个需求当然可以采用NumericRangeQuery来实现,这里的Filter只是做个简单例子

*True 文档返回;false:文档不返回

*/

public class CustomFilter extends Filter{

    public static final int LENGTH = 10;

    public BigSet bits(IndexReader reader)throws IOException{

        BigSet bits = new BigSet(reader.maxDoc());

        bits.set(0,bits.size()-1);//先将整个集合置为True,表示所有的文档都能搜索到

        Term t = new  Term("sentece","lucene");

        TermDocs termDocs = reader.termDocs(term);

        while(termDocs.next()){

            bits.set(termDocs.doc(),false); // 遍历文档,将每个设置为false

        }

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值