dse(cassandra)-int数据类型的范围搜索

g0czyy6m  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(437)

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


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

2nbm6dog

2nbm6dog1#

这个 token 函数根据配置的分区器的值计算令牌。计算出的值是用于标识数据所在节点的哈希值,这不是数据本身。
cassandra只能在单个分区内的集群列(仅适用于某些设计)上对值执行范围搜索。如果您需要对任意列执行range(也适用于分区键),有一个dse搜索,它允许您索引表并执行不同类型的搜索,包括range。。。但要考虑到它将比传统的cassandra查询慢得多。
在您的情况下,可以并行运行3个查询(覆盖值2、3、4),如下所示:

select * from test where header = value;

然后在代码中合并结果。
我建议参加datastax academy的ds201和ds220课程,了解cassandra如何执行查询,以及如何对数据进行建模以实现这一点。

相关问题