Cassandra Stratio Не удалось выполнить чтение
Вот мой запрос:
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"
}
}
}'
};
И я получаю это исключение:
Трассировка (последний вызов был последним): файл "/opt/apache-cassandra-3.0.3/bin/cqlsh.py", строка 1249, в файле execute_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/cassandra/cluster.py", строка 3122, в результате поднять себя._final_exception ReadFailure: code=1300 [Реплике не удалось выполнить чтение] message="Операция не выполнена - получено 0 ответов и 1 ошибок" info={'failures': 1, 'receive_responses': 0, 'required_responses': 1, "последовательность": "ОДИН"}
Кто-нибудь знает, почему я могу получить эту ошибку?
2 ответа
Мне нужно было использовать поиск "Range", а не поиск "Date Range". Если вы используете поиск "Диапазон дат", лучше использовать "Картограф диапазон дат".
@user1019182 совершенно прав, поиски "date_range" предназначены для использования с данными, проиндексированными с помощью преобразователя "date_range", который индексирует длительности времени, составленные из даты начала и окончания, используя пространственный подход.
Для поиска простых дат по времени вы должны использовать поиск по диапазону:
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 по умолчанию не связан с этим.