[ 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)