lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ronald Rudy <>
Subject Re: Boolean expression for no terms OR matching a wildcard
Date Tue, 15 Jul 2008 22:14:31 GMT
Thanks Chris (or if you prefer, Hoss) - I will definitely try that for  
matching no docs, but one of the problems I'm having is that I'm  
indexing multiple terms for one field and I need ALL the terms to  
match it.

Maybe this is easier ... suppose what I'm indexing is a phone number,  
and there are multiple phone numbers for what I'm indexing under the  
same field (phone) and I want the wildcard query to match only records  
that have either no phone numbers at all OR where ALL phone numbers  
are in a specific area code (e.g. 800* would match all in the 800 area  

I would want something like


but I want this query to ALSO exclude any hits that have any records  
that DON'T match the wildcard ... so if a record has an 800* number  
AND a 900* number I don't want it to be in the results..


On Jul 15, 2008, at 4:47 PM, Chris Hostetter wrote:

> Assuming i understand your question: the fact that your first clause  
> is a
> wildcard query is irrelevant, to generalize your request you want a  
> way to
> query for all docs which either match some sub query, or have no  
> terms in
> the field at all.  to find all docs with no terms for a given field,  
> you
> need to search for all docs (MatchAllDocs), then exclude the docs that
> have a value for
> thatfield -- which is easy to do using a ConstantScoreRangeQuery  
> where the
> lower and upper bounds are both null.
> essentially you want something like...
>   myfield:abc*123  (+MatchAllDocsQuery -myfield:[* TO *])
> (except you'll have to construct the MatchAllDocsQuery and the two
> BooleanQueries yourself)
> -Hoss
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message