Cassandra SASI索引具有多个字段

时间:2019-04-24 09:17:31

标签: cassandra cql cqlsh

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

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

是否可以使用SASI索引或Cassandra中的其他功能?

1 个答案:

答案 0 :(得分:1)

是的,但是只有通过使用ALLOW FILTERING才能实现。

根据DataStax文档-“如果使用ALLOW FILTERING,则SASI还支持使用AND进行多个谓词查询。使用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