[ https://issues.apache.org/jira/browse/OAK-5448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chetan Mehrotra updated OAK-5448: --------------------------------- Attachment: OAK-5448.patch [patch|^OAK-5448.patch] for the same [~catholicon] Can you review once! > Aggregate logic should optimize for case where patterns do not include > wildcard > ------------------------------------------------------------------------------- > > Key: OAK-5448 > URL: https://issues.apache.org/jira/browse/OAK-5448 > Project: Jackrabbit Oak > Issue Type: Improvement > Components: lucene > Reporter: Chetan Mehrotra > Assignee: Chetan Mehrotra > Fix For: 1.5.18, 1.6 > > Attachments: OAK-5448.patch > > > Aggregate logic in oak-lucene currently tries to apply matcher on each of the > child node of a modified parent node. This is required for those case where > pattern involves wild card like aggregating '\*/\*/\*' pattern. > However this performs poorly if the aggregate does not involve pattern. For > e.g. if we have defined a property definition for 'jcr:content/@status' for > nt:base > {noformat} > + indexRules > + nt:base > + properties > + status > - name = "jcr:content/status" > - propertyIndex = true > {noformat} > For above definition current logic would try to apply the matcher for > 'jcr:content' on each of the child nodes. So if we have a folder have 1000 > entries it would read that many child nodes. > As a fix we should check if the aggregate path has wild card or not. if its > specific then aggregate logic should directly lookup child with given name -- This message was sent by Atlassian JIRA (v6.3.4#6332)