[
https://issues.apache.org/jira/browse/CASSANDRA-11182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15321454#comment-15321454
]
Alex Petrov commented on CASSANDRA-11182:
-----------------------------------------
I've looked at how it could possibly implemented. `CONTAINS` itself is fairly
simple as it has similar semantics to `EQ`. I've implemented a rough prototype
that would index and flush collections, which was touching a lot of SASI but
it's mostly adding the {{target}} everywhere it's not currently passed and
moving away from reading the value from {{Cell#value}}, and going picking up
the right thing depending on the context.
The only possible performance implication is the fact that we still do
post-filtering. Since the index is storing the partition key position, we check
if the row from the row cluster satisfies all conditions with
{{Operation#localSatisfiedBy}}. Having to iterate through all the cells in the
collection might be quite costly. After talking with [~beobal] briefly about
it, the one possible way to implement it is to add offsets to the concrete
rows, although that would also mean a larger change.
cc [~xedin]
> Enable SASI index for collections
> ---------------------------------
>
> Key: CASSANDRA-11182
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11182
> Project: Cassandra
> Issue Type: Improvement
> Components: CQL
> Reporter: DOAN DuyHai
> Assignee: Alex Petrov
> Priority: Minor
>
> This is a follow up ticket for post Cassandra 3.4 SASI integration.
> Right now it is possible with standard Cassandra 2nd index to:
> 1. index list and set elements ( {{WHERE list CONTAINS xxx}})
> 2. index map keys ( {{WHERE map CONTAINS KEYS 'abc'}} )
> 3. index map entries ( {{WHERE map\['key'\]=value}})
> It would be nice to enable these features in SASI too.
> With regard to tokenizing, we might want to allow wildcards ({{%}}) with the
> CONTAINS syntax as well as with index map entries. Ex:
> * {{WHERE list CONTAINS 'John%'}}
> * {{WHERE map CONTAINS KEY '%an%'}}
> * {{WHERE map\['key'\] LIKE '%val%'}}
> /cc [~xedin] [~rustyrazorblade] [~jkrupan]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)