Hi, Solr team
I am using Solr 8.11, and I want to ask some questions about NOT query.
My original query is:
network_id:379619 AND (object_type:("ssp_deal" OR "ssp_buyer_group" OR
"ssp_buyer")) AND (network_id:("379619")) AND (*:* NOT user_id: 0)
And I opened the debugQuery, the log is:
"rawquerystring":"network_id:379619 AND (object_type:(\"ssp_deal\" OR
\"ssp_buyer_group\" OR \"ssp_buyer\")) AND (network_id:(\"379619\")) AND
(*:* NOT user_id: 0)",
"querystring":"network_id:379619 AND (object_type:(\"ssp_deal\" OR
\"ssp_buyer_group\" OR \"ssp_buyer\")) AND (network_id:(\"379619\")) AND
(*:* NOT user_id: 0)",
"parsedquery":"+network_id:379619 +(object_type:ssp_deal
object_type:ssp_buyer_group object_type:ssp_buyer) +network_id:379619
+(MatchAllDocsQuery(*:*) -user_id:0)",
Then I changed the query to:
network_id:379619 AND (object_type:("ssp_deal" OR "ssp_buyer_group" OR
"ssp_buyer")) AND (network_id:("379619")) AND NOT user_id: 0
And the debug log is:
"rawquerystring":"network_id:379619 AND (object_type:(\"ssp_deal\" OR
\"ssp_buyer_group\" OR \"ssp_buyer\")) AND (network_id:(\"379619\")) AND
NOT user_id: 0",
"querystring":"network_id:379619 AND (object_type:(\"ssp_deal\" OR
\"ssp_buyer_group\" OR \"ssp_buyer\")) AND (network_id:(\"379619\")) AND
NOT user_id: 0",
"parsedquery":"+network_id:379619 +(object_type:ssp_deal
object_type:ssp_buyer_group object_type:ssp_buyer) +network_id:379619
-user_id:0",
And the difference of queries are (*:* NOT user_id: 0) and NOT user_id: 0
the parsedquery are : +(MatchAllDocsQuery(*:*) -user_id:0) and
-user_id:0.
And the results of both queries are the same.
Then I test, the query which used (NOT user_id: 0) took less time than used
(*:* NOT user_id: 0)
So I want to ask, I hope you can analyze theoretically which query takes
less time to select?
Hope to get your response, thanks!