gpt4 book ai didi

nosql - 在 Cassandra 中存储订购的商品

转载 作者:行者123 更新时间:2023-12-01 08:00:54 25 4
gpt4 key购买 nike

我正在开发应该使用 Apache Cassandra 存储数据的 Web 应用程序。我需要存储每个项目的评分,然后获取评分最高的项目列表。

因此任务 - 按排序顺序存储项目的一些额外信息,以摆脱客户端排序或使用 ORDER BY 排序。

一种可能的选择是创建索引列族:

userId {
100_ItemId1 : null,
90__ItemId2 : null,
80__ItemId3 : null,
80__ItemId4 : null
}

注意: userId 是行的键,100、90、80 - 是评分值

但是这里有一个删除的问题,我们应该知道以前的评级值来删除索引,并且它可能需要在列族中存储反向信息:

reversed_userId{
ItemId1 : 100_ItemId1,
ItemId2 : 100_ItemId2,
...
}

请问有没有一些模式可以有效地存储订购的商品?

P.S:我不会使用 OrderPreservingPartitioner,因为它可以应用于整个 KeySpace,并且会损害负载平衡和性能。

最佳答案

我希望您知道在 CQL 3 中您现在可以使用复合键结构进行排序会很高兴。

http://www.datastax.com/dev/blog/whats-new-in-cql-3-0

例如:

 CREATE TABLE SortedPosts (
post_id int,
sort_order int,
post_title text,
PRIMARY KEY(post_id, sort_order)
);

sort_order 将对其进行排序。你可以:

SELECT * FROM SortedPosts WHERE post_id = 1 ORDER BY sort_order ASC
SELECT * FROM SortedPosts WHERE post_id = 1 ORDER BY sort_order DESC

关于nosql - 在 Cassandra 中存储订购的商品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12075383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com