I am running following two queries and was expecting same results but that not the case , does anybody knows why?
First Query
_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 *:*)
Second query
_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 *:*)
The difference in two queries is
the first query is like: P AND (Q AND B AND R AND *:*)
the second query is like: 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
I would like to believe that query Q is same as A while R is same as C.
Hence results pulled out by both queries should be same.
The issue is Solr/Lucene is ignoring proximity search when grouped with a nested query as mentioned in below linked.
Solr/Lucene is ignoring proximity search when grouped with a nested query
The issue was fixed once , proximity search was also turned into subquery.