I have a BooleanQuery that looks like this:
BooleanQuery query = new BooleanQuery();
TermQuery term1 = new TermQuery(new Term(ID, "1234"));
TermQuery term2 = new TermQuery(new Term(ID, "2344"));
TermQuery term2 = new TermQuery(new Term(ID, "2323"));
TermQuery termLocation = new TermQuery(new Term(LOCATION, "A1"));
TermQuery termLanguage = new TermQuery(new Term(LANGUAGE, "ENU"));
query.add(term1, BooleanClause.Occur.Should);
query.add(term2, BooleanClause.Occur.Should);
query.add(term3, BooleanClause.Occur.Should);
query.add(termLocation, BooleanClause.Occur.MUST);
query.add(termLanguage, BooleanClause.Occur.MUST);
It produces this:
ID: 1234 ID:2344 ID:2323 +LOCATION:A1 +LANGUAGE:ENU
I just want results that have:
ID: 1234 OR 2344 OR 2323
LOCATION: A1
LANGUAGE: ENU
This query returns everything from my index. How would I create a query
that will only return results the must have LOCATION and LANGUAGE and
have only those three IDs.