Chetan Mehrotra created OAK-5448:

             Summary: Aggregate logic should optimize for case where patterns 
do not include wildcard
                 Key: OAK-5448
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: lucene
            Reporter: Chetan Mehrotra
            Assignee: Chetan Mehrotra
             Fix For: 1.5.18, 1.6

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 

  + indexRules 
   + nt:base 
    + properties 
     + status 
      - name = "jcr:content/status"
      - propertyIndex = true

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

Reply via email to