Let me expound more on the question. Will the q1 be run on the BooleanQuery q2 
and append the results that are not equal to the result of the first query of 
q2?




________________________________
From: Jay Joel Malaluan <exst_jmalal...@yahoo.com>
To: java-user@lucene.apache.org
Sent: Wednesday, December 17, 2008 2:42:06 PM
Subject: Re: Unique results in BooleanQuery

Hi Paul,

But will the q1 be run on the BooleanQuery q2 or q1 is just used for filtering? 
 


Regards,
Jay Malaluan





________________________________
From: Paul Cowan <co...@aconex.com>
To: java-user@lucene.apache.org
Sent: Wednesday, December 17, 2008 1:37:15 PM
Subject: Re: Unique results in BooleanQuery

Hi Jay,

> Anyone knowledgeable on how to get unique hits using the BooleanQuery?
> If I have 2 queries so the when the 1st query is processed then the 2nd
> query will not anymore return the same results from the 1st query. 

Do you mean you want to run two separate queries -- get all the results from 
query 1 first, then get the results which match query 2 but also DON'T match 
query 1?

e.g. search for "fruit:apple", get back x records
then search for "colour:blue", get back records with 'blue' as a colour but 
WITHOUT 'apple' as a fruit?

Do the first query as normal, then create a second BooleanQuery; add one clause 
for "colour:blue", Occur.MUST, and then add the query from the first search as 
a MUST_NOT.

Query q1 = new TermQuery(new Term("fruit", "apple"));
..... run query, get back all apples ...

BooleanQuery q2 = new BooleanQuery();
q2.add(new TermQuery(new Term("colour", "blue")), Occur.MUST);
q2.add(q1, Occur.MUST_NOT);
..... run query q2, get back all blue things that don't have apples ...

Cheers,

Paul

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


      

Reply via email to