: This is now my generalized understanding of the parser's operators. Am I
: closer?
I'm guessing there is suppose to be some sort of table structure to the
mail you send ... it doesn't work in plain text mail readers so i'm not
sure whta ou were trying to say.
In a nut shell...
1) Lucene's QueryParser class does not parse boolean expressions -- it
might look like it, but it does not.
2) Lucene's BooleanQuery clause does not model Boolean Queries ... it
models aggregate queries.
3) the most native way to represent the options available in a lucene
"BooleanQuery" as a string is with the +/- prefixes, where...
+foo ... means foo is a required clause and docs must match it
-foo ... means foo is prohibited clause and docs must not match it
foo ... means foo is an optional clause and docs that match it will
get score benefits for doing so.
4) in an attempt to make things easier for people who have
simple needs, QueryParser "fakes" that it parses boolean expressions
by interpreting "A AND B" as "+A +B"; "A OR B" as "A B" and "NOT A" as
"-A"
5) if you change the default operator on QueryParser to be AND then
things get more complicated, mainly because then QueryParser treats
"A B" the same as "+A +B"
6) you should avoid thinking in terms of AND, OR, and NOT ... think in
terms of OPTIONAL, REQUIRED, and PROHIBITED ... your life will be much
easier: documentation will make more sense, conversations on the email
list will be more synergistastic, wine will be sweeter, and food will
taste better.
:
:
: *Document*
:
: A OR B
:
: A B
:
: +A B
:
: A
:
: NOT B
:
: -B
:
: A AND NOT B
:
: A ?B
:
: *No Matching Terms*
:
: 0
:
: 0
:
: 0
:
: 0
:
: 1
:
: 0
:
: 0
:
: 0
:
: A
:
: 1
:
: 1
:
: 1
:
: 1
:
: 1
:
: 0
:
: 1
:
: 1
:
: B
:
: 1
:
: 1
:
: 0
:
: 0
:
: 0
:
: 0
:
: 0
:
: *0*
:
: A B
:
: 1
:
: 2
:
: 2
:
: 1
:
: 0
:
: 0
:
: 0
:
: 1* 0*
: Non-zero results are returned to the user. *Walt Stoneburner
: <[EMAIL PROTECTED]> 10-Jan-2007 v1.0*
:
: -wls
:
-Hoss
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]