2

我存储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)

复合有四个部分:[时间戳:类型:价格:属性名称]

是否可以使用 查询 1、2 或所有组件SliceQuery

  • 例如,我想从时间戳 T1 --> T2 查询(工作正常)
  • 还需要说时间戳 T1 --> T2 and Type = "C" and only "C"
  • 时间戳 T1 --> T2,类型 = "C" AND price = "365.0"

是否可以以这种方式查询复合材料的一部分?到目前为止,在我的测试中,我还没有能够将复合材料进行比较,就好像它只是长字节数组一样——而不是单个组件。

4

2 回答 2

4

来自 ML 的回答:这是一个半起步的例子。评论中应该有足够的内容可以让您继续前进: https ://github.com/zznate/cassandra-tutorial/blob/master/src/main/java/com/datastax/tutorial/StaticCompositeIndex.java

让我知道这是否有帮助。

于 2011-11-08T20:24:58.847 回答
0

是的,您可以搜索复合材料的各个部分。如果您使用 Cassandra 0.8.1 及更高版本,则需要在架构中将比较器指定为“CompositeType”。这是使用 CompositeType 编程范围查询的完整教程: http ://randomizedsort.blogspot.com/2011/11/cassandra-range-query-using.html

于 2011-11-21T23:27:54.687 回答