首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hector分量相等

Hector分量相等
EN

Stack Overflow用户
提问于 2012-07-17 14:32:48
回答 1查看 710关注 0票数 2

我正在阅读下面的link,它提供了对组合列的介绍,我对此没有什么疑问,特别是关于ComponentEquality.EQUAL和ComponentEquality.GREATER_THAN_EQUAL的用法。

在下面的示例中:

代码语言:javascript
复制
Composite start = compositeFrom(startArg, Composite.ComponentEquality.EQUAL);
Composite end = compositeFrom(startArg, Composite.ComponentEquality.GREATER_THAN_EQUAL);
start.addComponent(1,"CA",Composite.ComponentEquality.EQUAL);
end.addComponent(1,"CA",Composite.ComponentEquality.GREATER_THAN_EQUAL);

我不能理解为什么end组件需要GREATER_THAN_EQUAL作为相等组件。举例说明会很有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-17 22:05:11

在cassandra中,切片查询的工作方式是指定一个开始列和一个结束列(limit/isDescending标志也是如此,但这在这里是不相关的)。查询用例的一种方法是传递以US:CA开头的第一个复合列和以US:CA开头的最后一个复合列的完整(复合)列名。但是,您事先并不知道这一点。

切片查询的好处是开始列和结束列不需要是实际的列名。因为列名总是排序的,所以如果切片查询中的开始列不存在,cassandra将从大于提供的开始列的下一列开始。

因此,我们需要为您的查询构造一个开始列和一个结束列。如链接中所述,复合对象具有e-o-c位。该位用于切片查询。

复合柱有多个构件。每个组件都有e-o-c位。当一个组件将此位设置为等于时,Cassandra将继续查看下一个组件。当组件将此位设置为GREATER_THAN_EQUAL时,Cassandra将继续查找列,直到找到其各自的组件与我们正在查找的组件不相等的内容。

因此,现在考虑链接中的示例:我们希望对一个列族执行切片查询,该列族具有一个具有三个组件的复合比较器。我们希望获得第一个组件为US且第二个组件等于CA的所有列。

我们必须创建一个开始列和一个结束列。开始列将具有两个分量(两者都等于e-o-c),结束列将具有等于的第一个分量和等于的第二个分量GREATER_THAN_EQUAL。这将匹配第一个组件为US,第二个组件为CA的所有列。

如果将此位设置为EQUAL,则切片查询将匹配它找到的第一列,并且起始组件等于'CA‘。这很好,但是Cassandra还需要知道切片查询的结束列。为此,它将查看您提供的end组合。

希望这能帮上忙。

编辑:使解释更好

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11517133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档