如何以更紧凑的风格编写此Solr查询?
给定一个仅包含数字的空白标记字段,我想编写一个能够匹配包含以下内容的文档的查询: 1) 一组中的所有数字都是a 及 2) 集合B中至少有一个数字 这是我写的如何以更紧凑的风格编写此Solr查询?,solr,solr-query-syntax,Solr,Solr Query Syntax,给定一个仅包含数字的空白标记字段,我想编写一个能够匹配包含以下内容的文档的查询: 1) 一组中的所有数字都是a 及 2) 集合B中至少有一个数字 这是我写的 q=wstf:( 1 AND 2 AND 3 AND 4 ) AND ( 5 OR 6 OR 7 OR 8 ) // (Set A) AND (Set B) 我记得(但我可能错了)可以在表达式中指定默认运算符(我不是在谈论q.op参数),以获得如下结果 q=wstf:(AND 1 2 3 4) AND wstf:(OR 5 6 7 8)
q=wstf:( 1 AND 2 AND 3 AND 4 ) AND ( 5 OR 6 OR 7 OR 8 ) // (Set A) AND (Set B)
我记得(但我可能错了)可以在表达式中指定默认运算符(我不是在谈论q.op参数),以获得如下结果
q=wstf:(AND 1 2 3 4) AND wstf:(OR 5 6 7 8)
但我在参考指南中找不到类似的内容
编辑
请注意,我将默认运算符设置为和
有什么帮助吗?在您的案例和中,您只能取消指定为默认的运算符,并将查询合并到一条语句中:
q=wstf:(1 2 3 4 (5 OR 6 OR 7 OR 8))
这并不像你希望的那样好和短,但至少要短一点…
q=wstf:(+1+2+3+4)和wstf:(5 6 7 8)
应该可以做到。等一下!如果我将默认运算符设置为AND,结果会是什么?第二部分会使用OR运算符吗?我认为不是……据我所知,不可能为组合集合中的元素(在括号内)指定一个默认运算符,只需一个运算符组合不同的查询元素(字段:value)。但我总是渴望学习新东西;)我尝试了一下,注意到默认操作符会影响结果:count(xy)=count(+x+y)=count(x和y)=282--count(x或y)=738。如果我不更改默认运算符,您的建议会很好。那么q=wstf:(1234(5或6或7或8))
呢?