lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steven Parkes" <>
Subject RE: BooleanQuery.TooManyClauses exception
Date Tue, 17 Oct 2006 16:12:55 GMT
Lucene takes your date range, enumerates all the unique date/time values
in your corpus within that range, and then executes that query. So the
number of terms in your query is going to be equal to the number of
unique date/time values in the range.

The most common way of handling this is to not index the dates to a
higher precision than you need to support your query. If you're only
going to query down to days (and not the time of day within a date),
don't include the extra hours/minutes/seconds in the indexed field. You
can always put the higher precision value in a stored but unindexed
field if you want to retrieve it via the query results.

-----Original Message-----
From: Bushey, John [] 
Sent: Monday, October 16, 2006 10:44 AM
Subject: BooleanQuery.TooManyClauses exception

Hi - Can someone explain the reason why I'm getting the TooManyClauses
exception?  I have a general understanding of the issue based on my
reading, but I don't understand the mechanics of the it.  Specifically
how is my query being expanded to cause this problem?  How am I
exceeding the default 1024 clauses?  My query looks like the following.


pyLabel:(test) OR pyDescription:(test) AND ( pxCreateDateTime:[20060401
TO 20060901] )


The problem only happens when my date range exceeds ~2 months.  The date
is indexed with more precision, but for my query purposes I only care
about the date and not the time stamp portion.  What can I do to solve
or mitigate this problem and be able to search a date range that spans
at least a year? Is setMaxClauseCount() a predictable solution?  How
would reducing the precision of my date during indexing help?








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

View raw message