jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Parvulescu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCR-3513) Slower range query execution
Date Thu, 07 Feb 2013 15:45:14 GMT

    [ https://issues.apache.org/jira/browse/JCR-3513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13573601#comment-13573601

Alex Parvulescu commented on JCR-3513:

I initially thought this may be caused by JCR-3407 where I added a the "setRewriteMethod(CONSTANT_SCORE_BOOLEAN_QUERY_REWRITE)"
option to the WildcardQuery but this may not be the same thing you are experiencing.
I took a quick look at the RangeQuery and the changes you are referring to come from JCR-2415
(lucene 3.0.3 upgrade) [0].

So I think it is interesting to look at a stack-trace of one of your tests, if there are any
available, to make sure we're both affected by the same problem, and a possible fix covers

[0] https://fisheye6.atlassian.com/browse/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/WildcardQuery.java?r2=1371065&r1=1181086
> Slower range query execution
> ----------------------------
>                 Key: JCR-3513
>                 URL: https://issues.apache.org/jira/browse/JCR-3513
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>    Affects Versions: 2.4.3
>            Reporter: Tom Quellenberg
>            Assignee: Alex Parvulescu
> After switching from JachRabbit 1.6.4 to 2.4.3 we experienced extreme slow query executions.
All range query on date fields are often 10 times slow than before.
> In our repositories more than 1 million documents are stored which all contain for example
a creation date. Typical queries look like this:
> //element(*, sophora-nt:story)[@sophora:creationDate > ...]
> JackRabbit has its own RangeQuery implementation which is used when Lucene throws a TooManyBooleanClauses-exception
(and in some other situations, too). This worked well in Jackrabbit 1.6. In newer versions
a different Lucene library is used which never throws TooManyBooleanClauses exceptions. Instead,
is has its own fall-back in situations where a BooleanQuery does not work. This fall-back
with a MultiTermQueryWrapperFilter seams to us much slower than the fall-back implementation
in JackRabbit (Does anybody know the reason?). It is the same situation in Jackrabbit 2.6.0
(with Lucene 3.6.0)
> We patched org.apache.jackrabbit.core.query.lucene.RangeQuery to never use org.apache.lucene.search.TermRangeQuery
but always use the JackRabbit implementation. This leads to query executions as fast as in
older Jackrabbit versions.
> Do other people experience this problem? Are there any drawbacks using always the JackRabbit
implementation for range queries? 

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message