我正在调查Cassandra,但无法在以下任何文档中找到答案。
我需要跨深层次结构查询范围。我已经确定表示层次结构的最简单方法是将每个级别作为列。例如:
Origin Manufacturer Price ID
Europe.Germany VW Group.Audi 20000 1
Europe.Germany VW Group.Porshe 21000 2
Europe.Germany BMW 19000 3
这是一个伪SQL示例:
SELECT ID FROM CompositeTable WHERE (Origin STARTS WITH 'Europe')
AND (Manufacturer STARTS WITH 'VW Group' AND IS NOT 'VW Group.Porshe' OR IS 'BMW')
AND (Price BETWEEN 18000 AND 22000)
结果:
ID = [1, 3]
Cassandra可以跨复合索引执行此类搜索吗?
答案 0 :(得分:2)
Cassandra中的复合键是DBMS中的一种multiple-column index
,如果你在c1,c2和c3的索引中包含从c1到c6的列。如果查询是针对(c1),(c1,c2)或(c1,c2,c3)的=, > , <, >=, <=
操作而不是(c2),(c2,c3),则DB将始终尝试使用索引, (c3)或(c1,c3)。在cassandra中的情况是相同的但是在这里你在c1到c6上有多列索引[因为列首先根据c1进行排序,并且碰撞转移到c2并继续进行]