You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Thomas Mueller (Jira)" <ji...@apache.org> on 2026/02/17 14:05:00 UTC

[jira] [Created] (OAK-12100) Queries with nodeName don't run efficiently (estimated cost is too high)

Thomas Mueller created OAK-12100:
------------------------------------

             Summary: Queries with nodeName don't run efficiently (estimated cost is too high)
                 Key: OAK-12100
                 URL: https://issues.apache.org/jira/browse/OAK-12100
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: lucene, query
            Reporter: Thomas Mueller


The following query:

{noformat}
SELECT * FROM [acme:Asset] AS asset 
WHERE ISDESCENDANTNODE(asset, '/content') 
AND (NAME(asset) = 'berne' 
OR asset.[jcr:content/metadata/alias] = 'running' 
OR asset.[jcr:uuid] = 'running')
{noformat}

with jcr:content/metadata/alias and jcr:uuid are both configured in the definition with propertyIndex=true .

When run, it uses an index but it only uses the path filter (ancestor).

And when removing the filter on nodeName, the filter on alias is applied at index level.

Removing the filter on alias and jcr:uuid : the filter on nodeName is applied at index level.

Why jcr:uuid is never used in the query even if configured as property index?

The same behaviour happens on both elastic and lucene. It may be a problem is in the query engine.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)