[ 
https://issues.apache.org/jira/browse/OAK-5448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15822588#comment-15822588
 ] 

Vikas Saurabh commented on OAK-5448:
------------------------------------

[~chetanm], patch lgtm. Just a minor point though - 
{{getElementNameIfNotAPattern}} feels like a {{getSomethingOrNull}} but it 
throws instead.

> 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)

Reply via email to