Cassandra按计数排序结果

4

我正在记录用户搜索各种关键词的数据。我想要生成的报告是所有唯一关键词的列表,根据每个关键词被搜索的次数按升序和降序排序。

这是否可以使用Cassandra建模?如果可以,那么模型会是什么样子呢?

谢谢!

2个回答

4
根据eBay技术博客,将计数器的值存储在键本身中并不罕见。因此,要存储Bob、Ken和Jimmy登录网站的次数,单个行如下所示: logins: [(0001_Bob,''), (0002_Bob, ''), ..., (0010_Ken, ''), (0012_Jimmy, ''), ...] 请注意,您的键将自动按最高计数排序,这接近于常数时间查找。
请注意,每次用户登录时都会创建一个新的列键。您必须在另一行中跟踪登录次数,以便快速查找到目前为止已经发生了多少次登录以及下一个键应具有的整数值: login_count: [(Bob, 2), (Ken, 10), (Jimmy, 10), ...]

我真的不想成为需要支持这种方法的人。 - Pedro Gordo

0
你可以将每个关键字作为行键,并为每一行使用一个计数器列来跟踪搜索次数。然后,您可以通过扫描每一行并读取计数器来生成报告。Cassandra不会对结果进行排序(假设您使用默认的RandomPartitioner而不是OrderPreservingPartitioner),但考虑到可能只有几万个关键字,您可以轻松地在客户端对它们进行排序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接