Having a writers block here:
/** Set the maximum number of clauses permitted per BooleanQuery.
* Default value is 1024.
* <p>TermQuery clauses are generated from for example prefix queries and
* fuzzy queries. Each TermQuery needs some buffer space during search,
* so this parameter indirectly controls the maximum buffer
requirements for
* query search.
* <p>When this parameter becomes a bottleneck for a Query one can use a
* Filter. For example instead of a {...@link TermRangeQuery} one can use a
* {...@link TermRangeFilter}.
* <p>Normally the buffers are allocated by the JVM. When using for
example
* {...@link org.apache.lucene.store.MMapDirectory} the buffering is left to
* the operating system.
*/
Okay, so prefix and fuzzy queries now will use a constantscore mode
(indirectly, a filter) when it makes sense.
So this comment is misleading. And the parameter doesn't control the max
buffer - it possibly provides a top cutoff. But now it doesn't even
necessarily do that, because if the Query uses constantscore mode
(multi-term queries auto pick by default), this setting doesn't even
influence anything.
I started to rewrite below - but then it feels like I almost need to
start from scratch. I don't think we should claim this setting controls
the maximum buffer requirements for query search either - thats a bit
strong ;) And the buffer talk overall (including at the bottom) is a bit
confusing.
/** Set the maximum number of clauses permitted per BooleanQuery.
* Default value is 1024.
* <p>For example, TermQuery clauses can be generated from prefix
queries and
* fuzzy queries. Each TermQuery needs some buffer space during search,
* so this parameter indirectly controls the maximum buffer
requirements for
* query search.
* <p>When this parameter becomes a bottleneck for a Query one can use a
* Filter. For example instead of a {...@link TermRangeQuery} one can use a
* {...@link TermRangeFilter}.
* <p>Normally the buffers are allocated by the JVM. When using for
example
* {...@link org.apache.lucene.store.MMapDirectory} the buffering is left to
* the operating system.
*/
I'm tempted to make it:
/** Set the maximum number of clauses permitted per BooleanQuery.
* Default value is 1024.
*/
:)
Anyone have any suggestions though?
--
- Mark
http://www.lucidimagination.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]