前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >lucene如何返回所有数据

lucene如何返回所有数据

作者头像
johnhuster的分享
发布2022-03-29 14:18:53
7030
发布2022-03-29 14:18:53
举报
文章被收录于专栏:johnhuster

我们在实际使用lucene的过程中,筛选多个条件时BooleanQuery这个类来实现,比如下面代码:

代码语言:javascript
复制
 BooleanQuery.Builder bqBuilder = new BooleanQuery.Builder();
 if(!StringUtils.isEmpty(name)){
 SmartChineseAnalyzer analyzer=new SmartChineseAnalyzer();//中文
 QueryParser parser=new QueryParser("name", analyzer);
 Query query = parser.parse(name);
 bqBuilder.add(query,Occur.MUST);
 }
 if(!StringUtils.isEmpty(provId)){
 bqBuilder.add(new TermQuery(new Term("provinceId",provId)), Occur.MUST);
 }
 if(!StringUtils.isEmpty(cityId)){
 bqBuilder.add(new TermQuery(new Term("cityId",cityId)), Occur.MUST);
 }
 if(!StringUtils.isEmpty(unionNumber)){
 bqBuilder.add(new TermQuery(new Term("unionNumber",unionNumber)), Occur.MUST);
 } 
 if(!StringUtils.isEmpty(bankType)){
 bqBuilder.add(new TermQuery(new Term("bankType",bankType)), Occur.MUST);
 } 
 if(CollectionUtils.isEmpty(bqBuilder.build().clauses())){
 bqBuilder.add(new WildcardQuery(new Term("name","*")),BooleanClause.Occur.SHOULD);
 }

 BooleanQuery bQuery = bqBuilder.build();

但是如果上面条件均为空且没有上面标红部分的话查询到的文档为空,而不是所有文档!

对的,笔者在筛选条件为空的情况下使用了WildcardQuery这个类来实现返回所有文档!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/03/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档