我在卡桑德拉有这张桌子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 BY
Cassandra 中的子句仅适用于您的第一个集群列(主键中的第二列),在这种情况下是您的 product_id。 此 DataStax 文档指出:
查询复合主键和排序结果 ORDER BY 子句只能选择单列。该列必须是复合 PRIMARY KEY 中的第二列。
因此,如果您想让您的表格按 highlight_strength 排序,那么您需要将该字段设为第一个聚类列。
- 1 回答
- 0 关注
- 279 浏览
添加回答
举报
0/150
提交
取消