Steven Parkes points out:
Lucene doesn't use a pure Boolean algebra, so things don't always do
what one might expect and things like De Morgan's law don't hold.

You're exactly on to what I was pondering about.  With boolean logic, I
understand the operators inside and out, so something like De Morgan's law
makes intuitive sense to me.

I also understand, as Chris Hostetter points out, that things must be
thought of as MUST, MUST_NOT, and SHOULD.

My simple question involves neither boolean expressions, nor does it involve
comprehending Luence's operators.  I understand both.



The problem is the grouping operator ( ) and how it works with distributed
operators, I don't quite get what the specific transformation rules are.

I want to assume that:
+(A B) = +A +B
-(A B) = -A -B

...however, in running Luke, I see that +A +B generates a different query
than +(A B).  The first says must have both, but the second is must have at
least one.

And, while -A and -B means neither must not be there, can someone explain
what -(A B) means?

Furthermore syntax like +(-A +B) and -(-A +B) appear to be legal to Luke,
though I have no clue what this even means in simple English.

Thanks all so far!
-wls

Reply via email to