solr多条件查询
Posted 滴滴滴滴哒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solr多条件查询相关的知识,希望对你有一定的参考价值。
1.昨天记了一下三条件的“并且” “并且”( && && )的情况,今天再来记一下 “并且” “或者” 的情况。
这里的或者情况,一定要搞清楚无论有多少情况,只要“或者”出现,他的级别和第一个输入框的级别是一样的,如果我们把查询的条件语句分一下级别,
第一个输入框为solrSQL(主查询语句);
第二个输入框为solrFQ1(子查询语句1);
第三个输入框为solrFQ2(子查询语句2);
级别:solrSQL > solrFQ1 > solrFQ2
这样分一下级别很清楚了,方便我们拼接solr的查询语句,
好了,直奔下一步。上面讲到的只要出现或者我们可以理解为:solrSQL= solrFQL2>slorSQL1。
当然有些业务需求不同,可能是 solrSQL>solrFQ1=solrFQ2,这种需求为 在情况solrSQL的结果中,找出并且solrFQ1或者solrFQ2的情况,
具体的查询代码(以举例说明):
solrSQL:X_1457955996315_TM:"测试" + X_1457955996315_TM:"光盘"+ X_1457955996316_TM:"测试" + X_1457955996316_TM:"光盘"
solrFQ:X_1457955996315_TM:"竣工" + X_1457955996316_TM:"竣工"
solrFQ2:
2.并且 不含 的情况
等级为:solrSQL = solrFQ1 != solrFQ2
具体的查询代码(以举例说明):
solrSQL:X_1457955996315_TM:"测试" + X_1457955996316_TM:"测试"
solrFQ:X_1457955996315_TM:"竣工" + X_1457955996316_TM:"竣工" NOT X_1457955996315_TM:"光盘" NOT X_1457955996316_TM:"光盘"
solrFQ2:
不知道大家有没有发现以上情况除了 并且- 并且- 并且 的情况 其他情况基本上用不到 solrFQ2,基本上是在solrSQ和solrFQ1进行处理。
大家以此类推四级、五级.......N级的筛选情况。
以上是关于solr多条件查询的主要内容,如果未能解决你的问题,请参考以下文章
Django model 遇到查询条件组合比较多的情况下怎么写