cassandra-sasi多域索引

a0x5cqrl  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(270)

cassandrasasi索引允许在单个字段上进行类似于sql的查询。我想知道是否可以对多个字段执行类似的查询:

SELECT * FROM CUSTOMERS
WHERE FIRSTNAME LIKE 'joh%'
AND LASTNAME LIKE 'smi%'

这是否可能使用sasi索引或cassandra中的其他内容?

deyfvvtc

deyfvvtc1#

是的,这是可能的,但只有通过使用允许过滤。
根据datastax文档-“如果使用了allow filtering,sasi还支持使用and的多个 predicate 的查询。在sasi中,由于即使使用了allow filtering,也没有执行过滤,因此没有意识到使用过滤的性能缺陷“-https://docs.datastax.com/en/dse/5.1/cql/cql/cql_using/usesasiindexconcept.html

SELECT * FROM CUSTOMERS WHERE FIRSTNAME LIKE 'joh%' AND LASTNAME LIKE 'smi%' allow filtering;

但这只是一个语法规则,当两列上都有sasi索引时,它不应该导致性能下降。
您可以在这里阅读大量有关sasi实现的信息:http://www.doanduyhai.com/blog/?p=2058

相关问题