卡桑德拉的二级指数

时间:2013-07-25 12:22:36

标签: cassandra

在我的应用程序中,我列出了包含项目的列表,它们看起来像那样

1. list uuid: b1d19224-ebcc-4f69-a98e-4096a4b28121
 1. item
 2. item
 3. item

2. list uuid: 54b17b3a-5d83-4aec-9e7e-16bff1ba336b
 1. item

这些项目由数字编制索引。我想要做的是将项目添加到这些列表中,但不仅仅是在列表的末尾,有时也是在特定项目之后,例如在第一个项目之后。

我想这样做的方法是为这些项目提供一个独特的ID,例如(uuid of list).(number of item),例如b1d19224-ebcc-4f69-a98e-4096a4b28121.1。因此,每次我想添加一个新项目时,我要么将其添加到列表的末尾,要么在某个项目之后将其他项目添加到新的索引+ 1之后,例如(uuid of list).(number+1)

  • 还有另一种方法可以实现,或者我应该这样做吗?

1 个答案:

答案 0 :(得分:0)

如果要将项目插入按唯一项目编号排序的列表中,则应使用基于CQL3的复合主键列族。

     create table list (
         partkey varchar,
         item_num int,
         id varchar,
         data varchar,
         PRIMARY KEY (partkey, item_num)
    ) with clustering order by (item_num desc);

其中主键的第一部分将作为分区键服务,第二部分作为排序值。看看以下链接:

http://rollerweblogger.org/roller/entry/composite_keys_in_cassandra