栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Hector在Cassandra中查询CompositeType列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Hector在Cassandra中查询CompositeType列

好的起点教程在这里。

但是,在最终需要使用复合组件并尝试针对数据编写查询之后,我想出了一些我想共享的东西。

搜索复合列时,结果将是连续的列块。

因此,假设由3个字符串组成,我的列如下所示:

A:A:AA:B:BA:B:CA:C:BB:A:AB:B:AB:B:BC:A:B

对于从A:A:A到B:B:B的搜索,结果将是

A:A:AA:B:BA:B:CA:C:BB:A:AB:B:AB:B:B

注意“ C”组件吗?开始/结束词中没有“ C”组件!是什么赋予了?这些都是A:A:A和B:B:B列之间的所有结果。 Composite搜索项 不会
像处理嵌套循环那样提供结果
(这是我最初的想法),而是 由于对列进行了排序,因此您要为连续的column块指定开始项和结束项

构建复合搜索条目时,必须指定ComponentEquality

仅最后一项应为GREATER_THAN_EQUAL,其他所有则应为EQUAL。例如以上

Composite start = new Composite();start.addComponent(0, "A", Composite.ComponentEquality.EQUAL);start.addComponent(1, "A", Composite.ComponentEquality.EQUAL);start.addComponent(2, "A", Composite.ComponentEquality.EQUAL);Composite end = new Composite();end.addComponent(0, "B", Composite.ComponentEquality.EQUAL);end.addComponent(1, "B", Composite.ComponentEquality.EQUAL);end.addComponent(2, "B", Composite.ComponentEquality.GREATER_THAN_EQUAL);SliceQuery<String, Composite, String> sliceQuery = HFactory.createSliceQuery(keyspace, se, ce, se);sliceQuery.setColumnFamily("CF").setKey(myKey);ColumnSliceIterator<String, Composite, String> csIterator = new ColumnSliceIterator<String, Composite, String>(sliceQuery, start, end, false);while (csIterator.hasNext()) ....


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398277.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号