Cassandra和查询层次结构

时间:2012-08-06 09:38:57

标签: nosql cassandra hierarchical-data composite-key

我正在调查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可以跨复合索引执行此类搜索吗?

1 个答案:

答案 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并继续进行]