Ferret/lucene syntax


#1

I jut noticed this example in the lucene documentation*:

title:(+return +“pink panther”)

I have been using this syntax:

+title:(return AND “pink panther”)

Seemingly with success. Are both acceptable? I couldn’t find any
documentation on “the plus sign” itself.

Thanks for any pointers.

John

*http://lucene.apache.org/java/docs/queryparsersyntax.html#Boolean%
20operators


#2

On Thu, Mar 29, 2007 at 06:42:16PM -0400, John B. wrote:

I jut noticed this example in the lucene documentation*:

title:(+return +“pink panther”)

I have been using this syntax:

+title:(return AND “pink panther”)

Seemingly with success. Are both acceptable? I couldn’t find any
documentation on “the plus sign” itself.

the plus sign marks a required clause in a query. A document can only be
a hit if it matches that clause. The opposite of this is the minus sign,
documents that match such a clause can’t be a hit. Internally, Ferret
doesn’t handle AND and such, they get translated by the query parser,
i.e. ‘a AND b’ --> ‘+a +b’

Clauses without + or - are optional ‘nice to have’ clauses, they will
raise a document’s score if they match, but the doc won’t be excluded
from the hits if they don’t. So ‘a OR b’ gets transformed into ‘a b’.

Jens


Jens Krämer
webit! Gesellschaft für neue Medien mbH
Schnorrstraße 76 | 01069 Dresden
Telefon +49 351 46766-0 | Telefax +49 351 46766-66
removed_email_address@domain.invalid | www.webit.de

Amtsgericht Dresden | HRB 15422
GF Sven Haubold, Hagen Malessa


#3

On Mar 30, 2007, at 3:32 AM, Jens K. wrote:

from the hits if they don’t. So ‘a OR b’ gets transformed into ‘a b’.
Thanks for that, I actually was completely unaware of the case
without + or -. Very nice.

However, my question was actually more simple: are the semantics of
these two bit of a query the same?

title:(+return +“pink panther”)

+title:(return AND “pink panther”)

Thanks,
John


#4

On Mar 31, 2007, at 1:18 AM, John Joseph B. wrote:

Clauses without + or - are optional ‘nice to have’ clauses, they will

title:(+return +“pink panther”)

+title:(return AND “pink panther”)

I replied to this the other day, but I think my sending address was
incorrect and it didn’t go through - sorry 'bout that. My reply was
this:

Yup, both are acceptable. An “AND” actually affects both sides and
forces them to be required, as if you had used + in front. + is
documented in the document you referenced, just below AND.

If you are combining the queries above with other clauses they may
not be equivalent due to the +title, but if these are the full
queries they are equivalent (at least in Java Lucene).

Erik