このスキーマを使用してクエリ範囲の日付を実行しようとしました:
create column family fact_ingreso with comparator = UTF8Type and
key_validation_class=UTF8Type and
column_metadata =
[{column_name: ing_fecing, validation_class: DateType,index_type:KEYS}];
この方法でデータを挿入します
// Date format: "2010-04-01 00:00:00"
// The datos[20] has a date as a String in the above format
SimpleDateFormat formatoFecha = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date fecha = formatoFecha.parse(datos[20]);
System.out.println(fecha);
Column ing_fecing = new Column(toByteBuffer("ing_fecing"));
ing_fecing.setValue(ByteBufferUtil.bytes(fecha.getTime()));
ing_fecing.setTimestamp(timestamp);
client.insert(toByteBuffer(id_row), parent, ing_fecing, ConsistencyLevel.ONE);
これまでのところうまくいきましたが、次のコードを使用してクエリ範囲の日付を実行しようとすると:
get fact_ingreso where ing_fecing>2011-01-12;
「演算子 EQ を使用したインデックス句にインデックス付きの列が存在しません」というエラーが表示されました
しかし、演算子 ">" を "=" に置き換えると動作します:
get fact_ingreso where ing_fecing=2011-01-12;
出力
RowKey: 645
=> (column=ing_fecing, value=2011-01-12 00:00:00-0300, timestamp=1361899176638)
私は Cassandra データベースの初心者であり、論文の作業のためにこの機能を展開する必要があります。誰かが私を助けることができれば、本当に感謝しています。
編集: Cassandra のバージョンは 1.2 よろしく