[
https://issues.apache.org/jira/browse/JCR-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12523228
]
Ard Schrijvers commented on JCR-1064:
-------------------------------------
Implemented the new indexing format again. There is a subtle difficulty though:
When I have one sysIndex and 2 workspace indices in format style like:
sysIndex = old
ws1Index = old
ws2Index = old
now, only deleting the sysIndex, will generate a sysIndex in new format style
in index.createInitialIndex().
Since ws1Index and ws2Index are old, the parentQueryHandler should be set to
old index style again. This is implemented.
Now, when you would have again
sysIndex = old
ws1Index = old
ws2Index = old
and remove sysIndex *and* ws1Index, then at doInit() we would get
sysIndex = new --> old (but changed to old when ws2Index is initialised)
ws1Index = new
ws2Index = old
but, when querying ws1Index, this might give problems, because sysIndex is
reverted to "old" when ws2Index was initialized. To solve this, at
getIndexFormatVersion() always a check is done wether parent handler and
current index format are the same. If not, default back to old style.
This implies, that when updating jackrabbit version, you will *only* get the
new indexing format style if and only if you re-index all the existing indices
you have so far.
Hope my explanation is clear! I'll prepare the patch
> Optimize queries that check for the existence of a property
> -----------------------------------------------------------
>
> Key: JCR-1064
> URL: https://issues.apache.org/jira/browse/JCR-1064
> Project: Jackrabbit
> Issue Type: Improvement
> Components: indexing
> Affects Versions: 1.3.1
> Reporter: Ard Schrijvers
> Priority: Minor
> Fix For: 1.4
>
> Attachments: JCR-1064-2.patch, JCR-1064-2.patch, JCR-1064-2.patch,
> JCR-1064-DEPR.patch
>
>
> //[EMAIL PROTECTED] is transformed into the
> org.apache.jackrabbit.core.query.lucene.MatchAllQuery, that through the
> MatchAllWeight uses the MatchAllScorer. The calculateDocFilter() in
> MatchAllScorer does not scale and becomes slow for growing number of nodes.
> Solution: lucene documents will get a new Field:
> public static final String PROPERTIES_SET = "_:PROPERTIES_SET".intern();
> that holds the available properties of this document.
> NOTE: Lucene indices build without this performance improvement should still
> work and fall back to the original implementation
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.