Assume I have the following rather simple example that works fine:
BooleanQuery bq = new BooleanQuery();
bq.add(new PrefixQuery(new
Term("heading",word)),BooleanClause.Occur.SHOULD);
bq.add(new PrefixQuery(new
Term("attribute",word)),BooleanClause.Occur.SHOULD);
Now I add the following and I assume its doing what it should be
doing, not what I expect it should be doing:
BooleanQuery bq = new BooleanQuery();
bq.add(new PrefixQuery(new
Term("heading",word)),BooleanClause.Occur.SHOULD);
bq.add(new PrefixQuery(new
Term("attribute",word)),BooleanClause.Occur.SHOULD);
if(subjectId.length()>0)
bq.add(new PrefixQuery(new
Term("subject_id",subjectId)),BooleanClause.Occur.MUST);
This appears to be pulling out ALL records where "heading" matches or
"attribute" matches plus all records where "subject_id" matches.
How do I make it return documents that match "heading" or "attribute"
within the "subject_id" subset?
Kind regards,
Jacob Rhoden
____________________________________
Information Technology Services,
The University of Melbourne
Email: [email protected]
Phone: +61 3 8344 2884
Mobile: +61 4 1095 7575