Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cassandra中的范围查询_Cassandra - Fatal编程技术网

cassandra中的范围查询

cassandra中的范围查询,cassandra,Cassandra,以下各项按预期工作。但是,我应该由谁来执行范围查询,比如“where age>40和age54的用户请求select*,但不能简单地向age>54的用户请求select*,因为这需要进行完整的表扫描。有关更多详细信息,请参阅二级索引。在Cassandra中执行此操作的最佳方法因您的需求而异,但支持这些类型的范围查询的方法非常相似 基本上,您将利用一个事实,即行中的列是按名称排序的。因此,如果使用年龄作为列名(或列名的一部分),则该行将按年龄排序 您将发现这与存储时间序列数据有很多相似之处。我建议

以下各项按预期工作。但是,我应该由谁来执行范围查询,比如“where age>40和age<50”


您必须在列“年龄”上创建二级索引:

update column family Users with column_metadata=[{column_name: age, validation_class: LongType, index_type: KEYS}];
然后使用:

get Users where age > 40 and age < 50 
获取年龄大于40岁且年龄小于50岁的用户
注意:我认为:从1.2开始不支持独占运算符

Datastax对此有很好的文档:或者您可以创建和维护自己的二级索引。这是一个很好的链接:

您必须在列年龄上创建二级索引:

update column family Users with column_metadata=[{column_name: age, validation_class: LongType, index_type: KEYS}];
然后使用:

get Users where age > 40 and age < 50 
获取年龄大于40岁且年龄小于50岁的用户
注意:我认为:从1.2开始不支持独占运算符

Datastax对此有很好的文档:或者您可以创建和维护自己的二级索引。这是一个很好的链接:

在Cassandra中实现这一点的最佳方法因您的需求而异,但支持这些类型的范围查询的方法非常相似

基本上,您将利用一个事实,即行中的列是按名称排序的。因此,如果使用年龄作为列名(或列名的一部分),则该行将按年龄排序

您将发现这与存储时间序列数据有很多相似之处。我建议您看一下基本原理,然后在介绍的后半部分中给出一个更强大方法的示例


内置二级索引的设计基本上类似于哈希表,并且不适用于范围查询,除非该范围表达式在索引列上伴随一个相等表达式。因此,您可以向name='Joe'和age>54的用户请求
select*,但不能简单地向age>54的用户请求
select*,因为这需要进行完整的表扫描。有关更多详细信息,请参阅二级索引。

在Cassandra中执行此操作的最佳方法因您的需求而异,但支持这些类型的范围查询的方法非常相似

基本上,您将利用一个事实,即行中的列是按名称排序的。因此,如果使用年龄作为列名(或列名的一部分),则该行将按年龄排序

您将发现这与存储时间序列数据有很多相似之处。我建议您看一下基本原理,然后在介绍的后半部分中给出一个更强大方法的示例

内置二级索引的设计基本上类似于哈希表,并且不适用于范围查询,除非该范围表达式在索引列上伴随一个相等表达式。因此,您可以向name='Joe'和age>54的用户请求
select*,但不能简单地向age>54的用户请求
select*,因为这需要进行完整的表扫描。有关详细信息,请参见辅助索引