Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以更紧凑的风格编写此Solr查询?_Solr_Solr Query Syntax - Fatal编程技术网

如何以更紧凑的风格编写此Solr查询?

如何以更紧凑的风格编写此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)

给定一个仅包含数字的空白标记字段,我想编写一个能够匹配包含以下内容的文档的查询:

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 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))
呢?