Cassandra Stratio无法执行阅读

时间:2016-06-01 05:39:29

标签: cassandra stratio cassandra-lucene-index

这是我的问题:

select * from profiles where expr(profiles_index, '{ 
  filter: { 
    type: "date_range", 
    field: "age", 
    from: "1984/01/01", 
    to: "2010/01/01", 
    operation: "is_within" 
  } 
}');

这是我的表:

CREATE TABLE profiles (
    user_id timeuuid,
    age timestamp,
    PRIMARY KEY (user_id)
);

我的架构看起来像这样:

CREATE CUSTOM INDEX profiles_index ON profiles ()
USING 'com.stratio.cassandra.lucene.Index'
WITH OPTIONS = {
    'refresh_seconds' : '60',
    'schema' : '{
        default_analyzer : "english",
        fields : {
            age                  : {type : "date",
                                    validated : true,
                                    pattern : "yyyy/MM/dd"
            }
        }
    }'
};

我得到了这个例外:

  

Traceback(最近一次调用最后一次):文件   “/opt/apache-cassandra-3.0.3/bin/cqlsh.py”,第1249行,in   perform_simple_statement       result = future.result()文件“/opt/apache-cassandra-3.0.3/bin/../lib/cassandra-driver-internal-only-3.0.0-6af642d.zip/cassandra-driver-3.0.0 -6af642d /卡桑德拉/ cluster.py”   结果,行3122       raise self._final_exception ReadFailure:code = 1300 [Replica(s)无法执行read] message =“操作失败 - 收到0   响应和1次失败“info = {'failure':1,'received_responses':   0,'required_responses':1,'一致':'ONE'}

有谁知道为什么我会收到此错误?

2 个答案:

答案 0 :(得分:2)

@ user1019182完全正确," date_range"搜索旨在与使用" date_range"索引的数据一起使用。 mapper,使用空间方法索引由开始和结束日期组成的持续时间。

要在一段时间内搜索简单日期,您应该使用"范围"搜索:

select * from profiles where expr(profiles_index, '{ 
  filter: { 
    type: "range", 
    field: "age", 
    lower: "1984/01/01", 
    upper: "2010/01/01", 
    include_lower: true,
    include_upper:true 
  } 
}');
@ mahendra-singh错误,cqlsh默认的时间戳格式与此无关。

答案 1 :(得分:1)

我需要使用" Range"搜索,而不是"日期范围"搜索。如果您使用"日期范围"搜索,你最好使用"日期范围映射器"。