为了账号安全,请及时绑定邮箱和手机立即绑定

cassandra 中复合键的二级索引

cassandra 中复合键的二级索引

Go
一只名叫tom的猫 2021-07-31 18:04:55
我在卡桑德拉有这张桌子CREATE TABLE global_product_highlights (  deal_id text,  product_id text,  highlight_strength double,  category_id text,  creation_date timestamp,  rank int,  PRIMARY KEY (deal_id, product_id, highlight_strength))当我在 Golang 中触发以下查询时err = session.Query("select product_id from global_product_highlights where category_id=? order by highlight_strength DESC",default_category).Scan(&prodId_array)我得到错误:不支持带有 2ndary 索引的 ORDER BY。我有一个关于 category_id 的索引。我不完全理解二级索引是如何应用于 cassandra 中的复合键的。感谢是否有人会解释和纠正这一点。
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

ORDER BYCassandra 中的子句仅适用于您的第一个集群列(主键中的第二列),在这种情况下是您的 product_id。 此 DataStax 文档指出:

查询复合主键和排序结果 ORDER BY 子句只能选择单列。该列必须是复合 PRIMARY KEY 中的第二列。

因此,如果您想让您的表格按 highlight_strength 排序,那么您需要将该字段设为第一个聚类列。


查看完整回答
反对 回复 2021-08-02
  • 1 回答
  • 0 关注
  • 279 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信