lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jacob Rhoden <jrho...@unimelb.edu.au>
Subject Hopfully simple question constructing BooleanQuery
Date Tue, 15 Dec 2009 04:50:20 GMT
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: jrhoden@unimelb.edu.au
Phone: +61 3 8344 2884
Mobile: +61 4 1095 7575


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message