Lucene5.2中的QueryWrapperFilter用法
来源:互联网 发布:网络教学人物素描视频 编辑:程序博客网 时间:2024/04/27 06:21
Lucene5.2版本中 废弃掉了BooleanFilter,改用QueryWrapperFilter包装BooleanQuery的方式实现过滤的功能
示例代码如下:
//Filter因为也不再推荐使用,所以用Query替代。我将下面这个//BooleanQuery称做filter,并添加两个需要过滤的域BooleanQuery filter = new BooleanQuery(); filter.add(new TermQuery(new Term("过滤域A","过滤值")), Occur.MUST); filter.add(new TermQuery(new Term("过滤域B","过滤值")), Occur.MUST);//接下来用QueryWrapperFilter包装这个BooleanQuery filterQueryWrapperFilter wFilter = new QueryWrapperFilter(filter);//好了,wFilter就相当于一个老版本中的BooleanFilter了
但是,我们在调用IndexSearcher 的 search()方法时,参数值包括filter的重载方法都弃用了,只允许我们传入query,要如何使用我们刚刚包装好的wFilter呢,很简单,用一个BooleanQuery将这个wFilter包含进去
示例:
//创建一个BooleanQuery 将wFilter包装进去,//这个query中就包含了我们之前需要的过滤器了,//注意BooleanClause必须使用Occur.FILTERBooleanQuery query = new BooleanQuery(); query.add(wFilter,Occur.FILTER);//添加普通情况的query到我们刚刚创建的BooleanQuery中去 query.add(new TermQuery(new Term("普通查询c","查询值")), Occur.MUST);//打印这个querySystem.out.println(query.toString());
打印结果
#QueryWrapperFilter(+过滤域A:过滤值 +过滤域B:过滤值) +普通查询c:查询值
上面的结果看这个查询条件中就包括了我们需要过滤的域以及查询的值
ps
BooleanClause中包含了Occur枚举,我们用来约束不同查询条件之间的关联关系
public static enum Occur {//must表示查询条件中必须包含 MUST { @Override public String toString() { return "+"; } },//filter显然是和过滤器搭配使用的 FILTER { @Override public String toString() { return "#"; } },//should表示该查询条件与其他查询条件是与的关系 SHOULD { @Override public String toString() { return ""; } },//must_not表示查询条件中必须不包含在内 MUST_NOT { @Override public String toString() { return "-"; } }; }
0 0
- Lucene5.2中的QueryWrapperFilter用法
- Lucene5.3中的Filter
- Lucene5.3.1中的应用学习(一)
- Lucene5(2)索引增删改查
- lucene5.1 fst源码分析(嵌入到lucene中的写入过程)
- Luke for Lucene5.2.0
- Lucene5.2.0+SQLite Demo
- Lucene5.3高级应用
- 升级lucene5 问题
- Lucene5 源码分析
- lucene5.5创建索引
- Lucene5.5.0基本介绍
- lucene5--创建索引
- lucene5--索引域选项
- lucene5--多线程创建索引
- Lucene5(1)简单示例
- Lucene5(3)分词器
- Lucene5(5)搜索api
- form表单 下载
- JDBC初探(一)
- 回溯法入门
- 到底是学Java还是.net
- 内存空间
- Lucene5.2中的QueryWrapperFilter用法
- Ethernet Channel
- c++作业4
- 关于DIV css样式宽度设成百分比怎么在浏览器中获得它的像素
- Java对大中小型系统都适用
- Android刮刮卡效果
- ios获取点击屏幕的位置
- 分享到微信等门户网站代码
- Shell教程