lucene如何返回所有数据

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

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这个类来实现返回所有文档!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值