Evgeny Tugarev created OAK-9587:
-----------------------------------

             Summary: Add an attribute to enforce a strict index tag check
                 Key: OAK-9587
                 URL: https://issues.apache.org/jira/browse/OAK-9587
             Project: Jackrabbit Oak
          Issue Type: New Feature
          Components: query
    Affects Versions: 1.22.8
            Reporter: Evgeny Tugarev


JCR Query which does not specify an INDEX() tag may eventually pick up the 
tagged index.

This is not an error, however this behaviour is not always desirable when a 
tagged index must only be used by a specific query which explicitly specify an 
index tag and be transparent to other queries which does not specify it.

If I understand correctly the check is done 
[here|https://github.com/apache/jackrabbit-oak/blob/db55659c08dff47e9c28eef03f1a5628af13d8b2/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/query/FulltextIndexPlanner.java#L412]

I propose to add a boolean parameter (strictTagCheck or sth similar) which 
enforces a strict check for the index tag - the idea is to mark such index as 
wrong in case query does not specify the index tag and an index definition 
contains a tag. I think this change is also a backward compatible as does not 
change the existing behaviour, but adds a new one.

N.B. Currently a workaround applied to set the high costPerExecution and 
costPerEntry has a negative side effect of the query falling back to traverse 
and fails as it traverses > 100 000 nodes.

And, yes, it's an urgent issue :) 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to