[ https://issues.apache.org/jira/browse/JCR-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12522508 ]
Ard Schrijvers commented on JCR-1064: ------------------------------------- Hmmm, having a problem. When the index is empty at startup, the multiIndex seems to index some documents if (indexNames.size() == 0) { reindexing = true; This means, that index.getIndexReader().numDocs() == 0; is always false in SearchIndex doInit(). I can try to add in MultiIndex when reindexing = true to add default fieldNames.PROPERTY_SET, but I am afraid, if somebody makes a change, it might break again. It is kind of a problem of the allFieldNames.contains(FieldNames.PROPERTIES_SET) || numDocs == 0 test, which assumes some parts, and can be easy to break. WDOT? Shall I add it to MultiIndex, when reindexnig is true that PROPERTY_SET FieldName is added? I do not really like it though. > 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 > > > //[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.