0
create column family Records with
          comparator = UTF8Type and
          column_metadata =
          [
            {column_name: name, validation_class: UTF8Type},
            {column_name: label, validation_class: UTF8Type},
            {column_name: releasedate, validation_class: LongType},

Row-Key でレコードをクエリし、さらに releaseate (タイムスタンプ値) をチェックしたいと考えています。私がこれを理解している限り: http://www.datastax.com/dev/blog/whats-new-cassandra-07-secondary-indexes、最初に行キーでクエリを実行し、次に絞り込むと、これは簡単に可能になるはずです発売日。

しかし、ヘクターでこれを行う方法は?

使えSliceQueryません。存在することは知っていますがIndexedSliceQuery、セカンダリ インデックス セットがありません (上記のように)。それは決して正しくなく、IndexedSliceQuery を使用する必要がありますか (セカンダリ インデックスがありませんが)??

ありがとうマーカス

4

2 に答える 2

2

申し訳ありませんが、Cassandra APIでは現在、サーバー側の行と列のフィルタリングを混在させることはできません。(そして、それは順序を維持するパーティショナーにのみ意味があるので、これが変わる可能性は低いです。)

于 2011-06-12T22:29:59.827 に答える
2

リリース日までにデータをクエリする必要があることがわかっている場合は、Apache Cassandra を使用してその方法でデータを保存する必要があります。

これは 2 つの方法で行うことができます: - 上記の列ファミリー定義のメタ データを調整して、releasedate のインデックスを含めます。

update column family Records with column_metadata=[{column_name: releasedate, validation_class: LongType, index_name:releasedate_idx, index_type:0}];    
  • または、リリース日をキーとして使用する追加の列ファミリーを作成し、キーを列名としてレコード列ファミリーに格納します。これは基本的に上記のセカンダリ インデックスの定義と同じことを行いますが、更新の管理とクエリのプロセスがより手動になります。

IndexedSlicesQuery とそのすべての利点にアクセスできるようにする最初のアプローチをお勧めします。

于 2011-06-15T05:49:21.747 に答える