Hi there,

I am a litte confused about combined boolean operators in the query parser. For 
example If I search for

myfield:a AND myfield:b OR myfield:c

This will be parsed internal to the query

+myfield:a +myfield:b myfield:c

But if I change the default operator to AND (q.op=AND) I got for the same 
origin query:

+myfield:a myfield:b myfield:c

Which is BTW in both cases not pure boolean algebra: A AND B OR C should be (A 
AND B) OR C

Did anybody know why the query is handled that way?

Version is Solr 6.5.0, the handler ist almost the default /select handler:

        <requestHandler name="/select" class="solr.SearchHandler“>
                <lst name="defaults">
                        <str name="echoParams">explicit</str>
                        <str name="df“>myfield</str>
                        <str name="wt">json</str>
                        <str name="indent">true</str>
                </lst>
        </requestHandler>

Queries:
/select?debugQuery=on&indent=on&q=myfield:a AND myfield:b OR myfield:c&wt=json
/select?debugQuery=on&indent=on&q.op=AND&q=myfield:a AND myfield:b OR 
myfield:c&wt=json

See parsedquery in the result. myfield should be replaceable by any fieldname 
in the index like id.

Best
Marco

Reply via email to