2016-06-01 13 views
0

Вот мой запрос: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" 
      } 
     } 
    }' 
}; 

И я Исходя из этого исключения:

Traceback (самый последний вызов последнего): Файл "/opt/apache-cassandra-3.0.3/bin/cqlsh.py", линия 1249, в perform_simple_statement результат = future.result() Файл «/ неавтоматического /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, в результате raise self._final_exception ReadFailure: code = 1300 [Replica (s) не удалось выполнить read] message = «Операция не выполнена - получено 0 ответов и 1 отказ» info = {'failures': 1, 'received_responses ': 0,' required_responses ': 1,' concency ':' ONE '}

Кто-нибудь знает, почему я могу получить эту ошибку?

ответ

1

Мне нужно было использовать поиск «Диапазон», а не поиск «Диапазон дат». Если вы используете поиск «Диапазон дат», вам лучше использовать «Диаграмму диапазона дат».

2

@ user1019182 абсолютно прав, поиски «date_range» предназначены для использования с данными, индексированными с помощью mapper 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 
    } 
}'); 

@ Мээндра-Синг неправильно, формат временной метки cqlsh по умолчанию не связан с этим.