Solr查询返回不同的结果,尽管两个查询看起来都具有相同的逻辑

时间:2019-01-14 14:49:37

标签: solr

我正在跟踪两个查询,并且期望得到相同的结果,但事实并非如此,有人知道为什么吗?

首次查询

_query_:"{!complexphrase inOrder=true}accounts:\"functional currency\"" AND (-_query_:"{!complexphrase inOrder=false}accounts:\"functional currency GBP\"~11" AND -_query_:"{!complexphrase inOrder=false}accounts:\"functional currency pound*\"~11" AND -_query_:"{!complexphrase inOrder=false}accounts:\"functional currency sterling\"~11" AND *:*)

第二个查询

_query_:"{!complexphrase inOrder=true}accounts:\"functional currency\"" AND (-accounts:"functional currency GBP"~11 AND -_query_:"{!complexphrase inOrder=false}accounts:\"functional currency pound*\"~11" AND -accounts:"functional currency sterling"~11 AND *:*)

两个查询的区别是

第一个查询就像:P AND(Q AND B AND R AND *:*)

第二个查询就像:P AND(A AND B AND C AND *:*)

P : _query_:"{!complexphrase inOrder=true}accounts:\"functional currency\""

Q : -_query_:"{!complexphrase inOrder=false}accounts:\"functional currency GBP\"~11"

B : -_query_:"{!complexphrase inOrder=false}accounts:\"functional currency pound*\"~11"

R : -_query_:"{!complexphrase inOrder=false}accounts:\"functional currency sterling\"~11"

A : -accounts:"functional currency GBP"~11

C :  -accounts:"functional currency sterling"~11

我想相信查询Q与A相同 而R与C相同。

两个查询得出的结果应该相同。

1 个答案:

答案 0 :(得分:0)

问题是,Solr / Lucene在与嵌套查询组合在一起时会忽略邻近搜索,如下面链接中所述。

Solr/Lucene is ignoring proximity search when grouped with a nested query

该问题已解决,一次邻近搜索也变成了子查询。