solr多条件查询(二)

由于现在的 需求很变态需要N多条件的叠加,本人就用了一天时间摸索加求助,终于参透出这个q和fq的强大之处。

需求如下图,有三种关系:并且、或、不含

1.如果是或者也就是改变的q的查询条件;

2.如果是并且改变的是fq的查询条件;

3.如果是不含也是改变fq的查询条件;

起初的做二级查询用到了一个fq,举例:查询题名为“测试”并且题名为“改造”的数据,如果你已经入门solr的基础,这个并不难,首先q先查出题名为测试的,fq进行筛选,查询出测试下面的含有改造的信息。

三层就想的有点异想天开了 ,起初我是在原来的fq加了条件为机房的 ,怎么查都是错误的。跟上面的查询结果一样,

后来查资料,问大牛,才知道,小伙子你想的有点多了,三层就是在加一个fq。诧异!吃惊!,试了一把果然如此。

总结一下,超过二次筛选,在加一个fq。相当于Java再new一个对象进行再次筛选。

所以以上需求正确的简单查询:

q:测试

fq:改造

fq:机房

千万别跟我第一想法一样

q:测试

fq:改造 + 机房

好了总结到此!感谢读贴小伙伴。~~~~

 

posted @ 2016-03-25 17:25  滴滴滴滴哒  阅读(981)  评论(0编辑  收藏  举报