lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From TCK <moonwatcher32...@gmail.com>
Subject Re: Hopfully simple question constructing BooleanQuery
Date Tue, 15 Dec 2009 05:25:23 GMT
How about the following?

BooleanQuery bq1 = new BooleanQuery();
bq1.add(new PrefixQuery(new
Term("heading",word)),BooleanClause.Occur.SHOULD);
bq1.add(new PrefixQuery(new
Term("attribute",word)),BooleanClause.Occur.SHOULD);

BooleanQuery bq = new BooleanQuery();
bq.add(bq1, BooleanClause.Occur.MUST);
if(subjectId.length()>0)
    bq.add(new PrefixQuery(new Term("subject_id",subjectId)),
BooleanClause.Occur.MUST);

I think bq should now be your desired query.

-TCK



On Mon, Dec 14, 2009 at 11:50 PM, Jacob Rhoden <jrhoden@unimelb.edu.au>wrote:

> 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