1

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

4

1 回答 1

2

Cassandra 中的复合键是multiple-column indexDBMS 中的一种,如果您在包含 c1 到 c6 列的表中的 c1、c2 和 c3 上有索引。如果查询是针对=, > , <, >=, <=(c1)、(c1,c2) 或 (c1, c2, c3) 的操作而不是 (c2)、(c2, c3)、(c3) 或 ( c1, c3)。这种情况在 cassandra 中是相同的,但是在这里您在 c1 到 c6 上有多列索引 [因为列首先根据 c1 进行排序,并且冲突延续到 c2 并继续]

于 2012-08-06T12:34:13.660 回答