lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erick Erickson <erickerick...@gmail.com>
Subject Re: Expression Evaluation
Date Thu, 06 Dec 2018 18:20:37 GMT
The short form is that the query parsers do not implement Boolean
logic by design. The boolean operators are approximated more or less
accurately by using parentheses. So try:

(content:bement AND status:relevant) OR source_name:Web

or, using the "real" syntax, something like:

+content:bement +status:relevant  source_name:Web

Also use &debug=query to see exactly what the resulting parsed query
is, but be aware you need to understand the +- etc notation.

Here's a pretty extensive treatment of the issue:
https://lucidworks.com/2011/12/28/why-not-and-or-and-not/

Best,
Erick
On Thu, Dec 6, 2018 at 10:02 AM Thomas L. Redman <tomredman@mchsi.com> wrote:
>
> I suspect nobody wants to broach this topic, this has to have come up before, but I can
not find an authoritative answer. How does the Standard Query Parser evaluate boolean expressions?
I have three fields, content, status and source_name. The expression
>
> content:bement AND status:relevant
>
> yields 111 documents. The expression
>
> source_name:Web
>
> yields 78050168 documents. However, the expression
>
> content:bement AND status:relevant OR source_name:Web
>
> yields 111 documents. Can anybody describe the order of operation, operator priorities
used in evaluating the above expression? It looks to me as if it takes the intersection of
content:bement and status:relevant, then limits successive set operators to that set. Is that
true? So any additional “OR” expressions will have no effect?

Mime
View raw message