具有多个字段的Cassandra SASI索引

问题描述 投票:0回答:1

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

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

这可能是使用SASI索引或Cassandra中的其他东西吗?

cassandra cql cqlsh
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.