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 christophe leroy <ha...@yahoo.fr> on 2006/11/25 20:29:31 UTC
Question about the "not" in lucene
Hello,
I don't understand how to use "not" with Lucene. I
think that it is not a boolean not. I read the
documentation but it is not clear enough on how the
"not" works.
For example, I tried to do this request:
type:product
--> I got 100 responses. It is normal. Then, I tried
this request:
type:product AND name:test
--> I got 1 response. It is normal too. And when I
tried this request:
type:product AND (name:test OR NOT name:test)
--> I got 1 response only. I should normally get 100
responses if the "not" was a boolean not.
Could you explain me how the "not" works?
Thank in advance,
Christophe
___________________________________________________________________________
Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions !
Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses
http://fr.answers.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: Question about the "not" in lucene
Posted by Mark Miller <ma...@gmail.com>.
Yes, I believe that it is entirely possible. You can nest and link
boolean clauses all you want: your example query would be a boolean with
two top level clauses, one required to be there and one required not to
be there. The second top level clause would itself be a boolean query
with two two clauses, both with a SHOULD. Now, what I think happens (I
haven't looked myself) is that the type:product will score a document
positively if found, but the NOT clause will score a document to 0 if
either of it's sub-clauses are found. Those 0 scores will not return as
hits. Now notice that if you just have "NOT(name:"toto" OR name:"tit")"
ALL of the docs will score 0 one way or another- the docs not found will
be 0 and docs found will be scored 0 by the NOT...so you will not get a
result. Now if you use the special query that matches all docs, and then
use a NOT query...the not query will work as expected...all docs will
get a positive score, but the NOT query will 0 out those in the MUST_NOT
clause.
I am an unclear kind of guy, so I hope that gives some help.
- Mark
hawat23 wrote:
> Thanks you for your answer.
>
> But, is it possible to group clauses with a "not". exemple:
>
> type:product NOT (name:"toto" OR name:"titi") ??
>
> Christophe
>
> Mark Miller a écrit :
>> Personally, I think of it as not a 'not' operator, but more a 'but
>> not' or 'and not' operator. Thats not totally the case I believe, but
>> gives you semantics that work. Truly I think that each part of the
>> query creates a score and the NOT query scores 0. That gives a
>> different result than a boolean system. More than a few times it has
>> been mentioned that Lucene is a scoring system and not a boolean system.
>>
>> - Mark
>>
>> christophe leroy wrote:
>>> Hello,
>>>
>>> I don't understand how to use "not" with Lucene. I
>>> think that it is not a boolean not. I read the
>>> documentation but it is not clear enough on how the
>>> "not" works.
>>>
>>> For example, I tried to do this request:
>>> type:product
>>> --> I got 100 responses. It is normal. Then, I tried
>>> this request:
>>> type:product AND name:test --> I got 1 response. It is normal too.
>>> And when I
>>> tried this request:
>>> type:product AND (name:test OR NOT name:test)
>>> --> I got 1 response only. I should normally get 100
>>> responses if the "not" was a boolean not.
>>>
>>> Could you explain me how the "not" works?
>>>
>>> Thank in advance,
>>>
>>> Christophe
>>>
>>>
>>>
>>>
>>>
>>> ___________________________________________________________________________
>>> Découvrez une nouvelle façon d'obtenir des réponses à toutes vos
>>> questions ! Profitez des connaissances, des opinions et des
>>> expériences des internautes sur Yahoo! Questions/Réponses
>>> http://fr.answers.yahoo.com
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: Question about the "not" in lucene
Posted by hawat23 <ha...@yahoo.fr>.
Thanks you for your answer.
But, is it possible to group clauses with a "not". exemple:
type:product NOT (name:"toto" OR name:"titi") ??
Christophe
Mark Miller a écrit :
> Personally, I think of it as not a 'not' operator, but more a 'but
> not' or 'and not' operator. Thats not totally the case I believe, but
> gives you semantics that work. Truly I think that each part of the
> query creates a score and the NOT query scores 0. That gives a
> different result than a boolean system. More than a few times it has
> been mentioned that Lucene is a scoring system and not a boolean system.
>
> - Mark
>
> christophe leroy wrote:
>> Hello,
>>
>> I don't understand how to use "not" with Lucene. I
>> think that it is not a boolean not. I read the
>> documentation but it is not clear enough on how the
>> "not" works.
>>
>> For example, I tried to do this request:
>> type:product
>> --> I got 100 responses. It is normal. Then, I tried
>> this request:
>> type:product AND name:test --> I got 1 response. It is normal too.
>> And when I
>> tried this request:
>> type:product AND (name:test OR NOT name:test)
>> --> I got 1 response only. I should normally get 100
>> responses if the "not" was a boolean not.
>>
>> Could you explain me how the "not" works?
>>
>> Thank in advance,
>>
>> Christophe
>>
>>
>>
>>
>>
>>
>>
>> ___________________________________________________________________________
>> Découvrez une nouvelle façon d'obtenir des réponses à toutes vos
>> questions ! Profitez des connaissances, des opinions et des
>> expériences des internautes sur Yahoo! Questions/Réponses
>> http://fr.answers.yahoo.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: Question about the "not" in lucene
Posted by Mark Miller <ma...@gmail.com>.
Personally, I think of it as not a 'not' operator, but more a 'but not'
or 'and not' operator. Thats not totally the case I believe, but gives
you semantics that work. Truly I think that each part of the query
creates a score and the NOT query scores 0. That gives a different
result than a boolean system. More than a few times it has been
mentioned that Lucene is a scoring system and not a boolean system.
- Mark
christophe leroy wrote:
> Hello,
>
> I don't understand how to use "not" with Lucene. I
> think that it is not a boolean not. I read the
> documentation but it is not clear enough on how the
> "not" works.
>
> For example, I tried to do this request:
> type:product
> --> I got 100 responses. It is normal. Then, I tried
> this request:
> type:product AND name:test
> --> I got 1 response. It is normal too. And when I
> tried this request:
> type:product AND (name:test OR NOT name:test)
> --> I got 1 response only. I should normally get 100
> responses if the "not" was a boolean not.
>
> Could you explain me how the "not" works?
>
> Thank in advance,
>
> Christophe
>
>
>
>
>
>
>
> ___________________________________________________________________________
> Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions !
> Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses
> http://fr.answers.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org