这是我的问题:
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'}
有谁知道为什么我会收到此错误?
答案 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
}
}');
答案 1 :(得分:1)
我需要使用" Range"搜索,而不是"日期范围"搜索。如果您使用"日期范围"搜索,你最好使用"日期范围映射器"。