[ https://issues.apache.org/jira/browse/OAK-3574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15486779#comment-15486779 ]
Chetan Mehrotra commented on OAK-3574: -------------------------------------- This looks much more powerful now! {noformat} String name = functionIndex.function; String f = FunctionIndexParser.convertToPolishNotation(name); {noformat} Instead of computing the polish notation in {{IndexPlanner}} this can be computed once and stored in PropertyDefinition itself. Currently the function evaluation logic in LuceneIndexEditor is handling relative property itself. This would work fine when the node gets indexed for first time or if some non function property got changed. But it would not work if the relative property which is encoded in function gets changed as editor would not be aware of that. Instead of that it would be better to use a separate field in property definition to capture function and then have property name determined from that. Then * In {{IndexDefinition#collectPropConfigs}} have the loop evaluate {{pd.relative}} part as that would then register this relative property. * And then you can implement the function evaluation logic in {{LuceneIndexEditor#indexProperty}} > Query engine: support p=lowercase('x') and other function-based indexes > ----------------------------------------------------------------------- > > Key: OAK-3574 > URL: https://issues.apache.org/jira/browse/OAK-3574 > Project: Jackrabbit Oak > Issue Type: New Feature > Components: core, query > Reporter: Thomas Mueller > Assignee: Thomas Mueller > Attachments: OAK-3574-lucene.patch > > > Currently, the query engine and indexes don't support function-based indexes > for conditions of the form lowercase(property) = 'x'. This needs to be > supported, specially for the Lucene property index. > Also important is lowercase(name()). -- This message was sent by Atlassian JIRA (v6.3.4#6332)