我尝试使用此架构进行查询范围日期:
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 问候