Solr---多个过滤查询条件的并集

13 篇文章 0 订阅

场景描述:

        一开始使用如下代码,使用多个过滤条件限制搜索条件,查询出的结果会是过滤条件的交集。因为业务需求,需要solr查询返回多个过滤条件的并集。

SolrQuery query = new SolrQuery();
...
query.addFilterQuery( "FILE_TYPE:*");

        在网上找了很久,只找到一篇讲到过滤条件并集的,但是并不适合我的场景

       地址:http://www.cnblogs.com/seaspring/p/6428074.html

       按照这篇文章来做,但是我在控制台输出query内容时候,发现solr并没有给我解析成我想要的结果,反而出现了不应该出现的代码。然后我去源码中找,虽然找得到对应的类和对应的方法,但是,在该文章讲到解析dismix的时候,死活找不到跳到该方法的代码,我理解是没有走他说的那一步,或者就是说因为solr版本的问题,我的这个版本没有按照他说的走。

解决办法:

        在无意间看到有人放出来正常搜索条件里有AND、OR的,然后我就设置了一个过滤条件,当然这个方法,上面链接中也提到,但是被作者否定掉,我就没有试,结果浪费了大量时间看源码。

query.addFilterQuery("FILE_TYPE:入院记录 OR FILE_TYPE:手术记录");

        结果通过计算两次的返回条数,和该条返回的条数相加,得到了我想要的结果。
 

后期补充:

        也可以写成如下样式:

query.addFilterQuery("FILE_TYPE:(入院记录 OR 手术记录)");

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值