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)

コンポジットには4つの部分があります:[タイムスタンプ:タイプ:価格:属性名]

を使用して1、2、またはすべてのコンポーネントパーツをクエリすることは可能SliceQueryですか?

  • たとえば、タイムスタンプT1-> T2からクエリを実行したい(正常に動作します)
  • また、タイムスタンプT1->T2およびType= "C"であり、"C"のみであると言う必要があります。
  • タイムスタンプT1->T2、タイプ="C"AND価格="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 に答える