DSE(Cassandra)-对int数据类型的范围搜索

问题描述 投票:0回答:1

我是使用Cassandra的初学者。我创建了一个包含以下详细信息的表,当我尝试使用令牌执行范围搜索时,没有得到任何结果。我是在做错什么还是对数据模型的理解?

enter image description here

enter image description here

查询select * from test where token(header)>=2 and token(header)<=4;

cassandra datastax
1个回答
0
投票

token函数根据已配置的分区程序从该值计算令牌。计算出的值是用于标识数据所在节点的哈希,它不是数据本身。

Cassandra只能对单个分区内的聚类列(仅适用于某些设计)的值执行范围搜索。如果您需要在任意列上执行范围(也用于分区键),则可以使用DSE搜索来索引表并执行不同类型的搜索,包括范围...但是要考虑到它会慢得多比传统的Cassandra查询。

根据您的情况,您可以并行运行3个查询(以覆盖值2,3,4),如下所示:

select * from test where header = value;

然后将结果合并到您的代码中。

我建议在DataStax Academy上学习DS201和DS220课程,以了解Cassandra如何执行查询以及如何对数据进行建模以使其成为可能。

© www.soinside.com 2019 - 2024. All rights reserved.