Chetan Mehrotra created OAK-5448:
------------------------------------

             Summary: 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


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)

Reply via email to