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