首页 > 解决方案 > 尽管两个查询看起来具有相同的逻辑,但 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 相同。

因此,两个查询提取的结果应该相同。

标签: solr

解决方案


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

Solr/Lucene 在与嵌套查询分组时忽略邻近搜索

问题修复一次,邻近搜索也变成了子查询。


推荐阅读