我使用CompositeType
存储的数据如下所示:
RowKey: 101390
=> (column=1320987600000:P:350.0:symbol, value=AAPL/F6LbE.O, timestamp=1320771711561000)
=> (column=1320987600000:P:355.0:symbol, value=AAPL/F6LfE.O, timestamp=1320771711569000)
=> (column=1320987600000:P:360.0:symbol, value=AAPL/F6LjE.O, timestamp=1320771711576000)
=> (column=1320987600000:P:365.0:symbol, value=AAPL/F6LnE.O, timestamp=1320771711586000)
=> (column=1320987600000:P:370.0:symbol, value=AAPL/F6LrE.O, timestamp=1320771711592000)
=> (column=1320987600000:P:460.0:symbol, value=AAPL/F6LzF.O, timestamp=1320771711607000)
=> (column=1320987600000:C:350.0:symbol, value=AAPL/FuLbE.O, timestamp=1320771712117000)
=> (column=1320987600000:C:355.0:symbol, value=AAPL/FuLfE.O, timestamp=1320771712120000)
=> (column=1320987600000:C:360.0:symbol, value=AAPL/FuLjE.O, timestamp=1320771712123000)
=> (column=1320987600000:C:365.0:symbol, value=AAPL/FuLnE.O, timestamp=1320771712128000)
[timestamp: type: price: attribute_name]
是否可以使用SliceQuery
查询1、2或所有部件?
- 例如,我想从时间戳T1 -> T2(工作良好)查询
- 还需要说明时间戳T1 -> T2和类型= "C",只有"C"
- 时间戳T1 -> T2,类型= "C" AND价格= "365.0"
是否可以以这种方式查询组合的部分?在我的测试中,到目前为止,我还不能和组合似乎被比较,如果它只是一个长字节数组-而不是单独的组件。
来自ML的回答:这里有一个这样的例子,它已经开始了一半。应该请在评论中留下足够的信息:https://github.com/zznate/cassandra-tutorial/blob/master/src/main/java/com/datastax/tutorial/StaticCompositeIndex.java
如果有帮助请告诉我。
是的,您可以搜索组合的某些部分。如果您使用的是Cassandra 0.8.1及以上版本,则需要在模式中将比较器指定为"CompositeType"。以下是使用CompositeType进行编程范围查询的完整教程:http://randomizedsort.blogspot.com/2011/11/cassandra-range-query-using.html