我可以在cassandra中的多个列上创建二级索引

use*_*409 11 cql cassandra cql3

我可以在cassandra中的多个列上创建二级索引吗?我可以这样做

在my_column_family上创建索引my_composite_index(id,name)

CQL抛出错误

:2:错误请求:第1:73行不匹配输入','期待')'

Aar*_*web 20

亚历克斯的答案是正确的,但我想我会添加一些额外的输入.

Cassandra二级索引(2i)实际上适用于低基数字段,即每个实体/行不唯一的事物.

如果您有一个拥有2.5亿美国公民的桌子,使用二级索引来跟踪他们所处的状态是2i的完美用例.使用二级索引来跟踪他们的社会安全号码不会 - 它会为读取和写入带来巨大的性能问题.在第二种方案中,最好创建自己的索引列族.

2i不会被复制,必须在每个节点中本地创建,因此如果必须替换节点或添加新节点,则需要大量的工作来重建它们.

就个人而言,我使用2i来过滤所有在同一CQL行上排序的项目结果(即所有项目具有相同的分区键) - 在该用例中它非常高效.


Ale*_*scu 13

没有.Cassandra二级索引基于单个列.您可以在此处找到用于创建二级索引的CQL语法

作为一个背景,二级索引基于单个列的原因是为了避免写入前读取以保持写入性能.