cassandra 中复合键的二级索引

我在卡桑德拉有这张桌子


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 中的复合键的。


感谢是否有人会解释和纠正这一点。


一只名叫tom的猫
浏览 280回答 1
1回答

交互式爱情

ORDER BYCassandra 中的子句仅适用于您的第一个集群列(主键中的第二列),在这种情况下是您的 product_id。 此 DataStax 文档指出:查询复合主键和排序结果 ORDER BY 子句只能选择单列。该列必须是复合 PRIMARY KEY 中的第二列。因此,如果您想让您的表格按 highlight_strength 排序,那么您需要将该字段设为第一个聚类列。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go