我在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)
我得到ERROR:不支持带有第二个索引的ORDER BY。
我有category_id的索引。
我不完全理解如何在cassandra中对复合键应用二级索引。
感谢是否有人会解释和纠正这一点。
答案 0 :(得分:1)
Cassandra中的ORDER BY
子句仅适用于您的第一个聚类列(主键中的第二列),在本例中是您的product_id。 This DataStax doc声明:
查询复合主键和排序结果ORDER BY子句 只能选择一列。那一栏必须是第二栏 复合PRIMARY KEY中的列。
所以,如果你想让你的表按highlight_strength排序,那么你需要将该字段作为第一个聚类列。