lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Todd VanderVeen <...@part.net>
Subject Re: Optional Terms in a single query
Date Mon, 21 Feb 2005 23:26:19 GMT
Luke Shannon wrote:

>The API I'm working with combines a series of queries into one larger one
>using a boolean query.
>
>Queries on the same field get OR's into one big query. All remaining queries
>are AND'd with this big one.
>
>Working with in this system I have:
>
>arg = (mario luigi bobby joe) //i do have control of how this list is
>created
>
>I pass this to the QueryParser:
>
>Query query1 = QueryParser.parse(arg, "name", new StandardAnalyzer());
>Query query2 = QueryParser.parse("stillhere", "olfaithfull", new
>StandardAnalyzer());
>BooleanQuery typeNegativeSearch = new BooleanQuery();
>typeNegativeSearch.add(query1, false, true);
>typeNegativeSearch.add(query2, true, false);
>
>This is half the query.
>
>It gets AND'd with the other half, to create what you see below:
>
>+(type:181) +((-(name:tim name:harry name:bill) +olfaithfull:stillhere))
>
>What I am having trouble with is getting the QueryParser to create
>this: -name:(tim bill harry)
>
>I feel like this is something simple, but for some reason I can't figure it
>out.
>
>Thanks,
>
>Luke
>
>  
>
Is the API something you control?

Lets call the other half of you query query3. To avoid the extra nesting 
you need to do the composition in a single boolean query.

Query query1 = QueryParser.parse(arg, "name", new StandardAnalyzer());
Query query2 = QueryParser.parse("stillhere", "olfaithfull", new StandardAnalyzer());
Query query3 = ....

BooleanQuery finalQuery = new BooleanQuery();
finalQuery.add(query1, false, true);
finalQuery.add(query2, true, false);
finalQuery.add(query3, true, false);

Cheers,
Todd VanderVeen

---------------------------------------------------------------------
To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: lucene-user-help@jakarta.apache.org


Mime
View raw message