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 "Nitin Gupta (Jira)" <ji...@apache.org> on 2022/01/24 10:36:00 UTC

[jira] [Updated] (OAK-9662) Perform inequality matches in Lucene+Elastic, rather than just in the query engine

     [ https://issues.apache.org/jira/browse/OAK-9662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nitin Gupta updated OAK-9662:
-----------------------------
    Fix Version/s: 1.44.0

> Perform inequality matches in Lucene+Elastic, rather than just in the query engine
> ----------------------------------------------------------------------------------
>
>                 Key: OAK-9662
>                 URL: https://issues.apache.org/jira/browse/OAK-9662
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>            Reporter: Nitin Gupta
>            Assignee: Nitin Gupta
>            Priority: Major
>             Fix For: 1.44.0
>
>
> Currently it appears that inequality matches are never fully performed inside Lucene (whereas obviously equality matches ARE).
>  
> Inequality query like 
> {code:java}
> /jcr:root/test/a//element(*, nt:base)[testProp != 'sample']  {code}
> This yields the plan which includes the Lucene query like below - effectively matching documents with _any_ value of this field and relying on the Query Engine to filter out those which are not equal to the passed value.
> {code:java}
> +:ancestors:/test/a +testProp:[* TO *] {code}
> And then all the results are fetched and the inequality condition is satisfied by QueryEngine - this leads to slower queries and even IndexTraversed read limit being exceeded in case of large repositories.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)