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

Ran*_*Ran 1 cassandra datastax-enterprise datastax

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

在此处输入图片说明

在此处输入图片说明

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

Ale*_*Ott 5

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

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

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

select * from test where header = value;
Run Code Online (Sandbox Code Playgroud)

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

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