You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Yonik Seeley <yo...@apache.org> on 2007/01/23 19:04:45 UTC

Re: query parser syntax -- does "-" require no-space after it to act as "prohibitor"?

On 1/23/07, Felix Litman <f_...@pacbell.net> wrote:
> Does a special character lika a "-" prohibitor operator require no-space after it in order to work as a prohibitor?
>
>   Typically on the web, e.g. Google and others, the "-" operator works as a boolean prohibitor only when not followed by a space. Otherwise it is treated as just a dash query term.
>
>   But in our Lucene implementation the the "-" seem to be acting as a prohibitor even if there is space after it.   For example. in a query:  Sales +    service    , the 'service' term is excluded by Lucene.  (Same for the "+" operator.)
>
>   Is this space-treatment a bug or a standard Lucene query parser behavior?

I think this is expected, and changing it would be more confusing.  Consider:
If "-" is expected to find a dash, surely "-x" should find a dash
followed by an x?

If you want literals, put quotes around your terms...
"Sales +    service"

-Yonik

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Re: query parser syntax -- does "-" require no-space after it to act as "prohibitor"?

Posted by Chris Hostetter <ho...@fucit.org>.
: If you want literals, put quotes around your terms...
: "Sales +    service"

or if you don't want a full phrase, you just want "-" to be treated as
a term match you can escape it, or quote it by itself...

    Sales \- service
    Sales "-" service



-Hoss


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Re: query parser syntax -- does "-" require no-space after it to act as "prohibitor"?

Posted by Felix Litman <f_...@pacbell.net>.
Thank you. Lucene documentation is vague on this subject.

On the LIA-book -earch powered by Lucene it seems the "-" operator works as a prohibitor regardless of the number of spaces after the "-".   Still can't tell if this is a bug or by design.

A Nutch parser, however, seems to have changed that.  I checked two Nutch/Lucene implementations the web - Indeed.com and at Oregon State. Their parsers provide a more "standard" public web search behavior.  I.e. the "-" is treated as a minus only if no space between it and the search term.  Otherwise the "-"becomes just another search term in the query.

-Felix

Yonik Seeley <yo...@apache.org> wrote: On 1/23/07, Felix Litman  wrote:
> Does a special character lika a "-" prohibitor operator require no-space after it in order to work as a prohibitor?
>
>   Typically on the web, e.g. Google and others, the "-" operator works as a boolean prohibitor only when not followed by a space. Otherwise it is treated as just a dash query term.
>
>   But in our Lucene implementation the the "-" seem to be acting as a prohibitor even if there is space after it.   For example. in a query:  Sales +    service    , the 'service' term is excluded by Lucene.  (Same for the "+" operator.)
>
>   Is this space-treatment a bug or a standard Lucene query parser behavior?

I think this is expected, and changing it would be more confusing.  Consider:
If "-" is expected to find a dash, surely "-x" should find a dash
followed by an x?

If you want literals, put quotes around your terms...
"Sales +    service"

-Yonik

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org