2016-06-01 7 views
0

Hier ist meine Frage:Cassandra Stratio konnte nicht ausgeführt lesen

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

Hier mein Tisch ist:

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

und mein Schema sieht wie folgt aus:

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" 
      } 
     } 
    }' 
}; 

und ich bekomme diese Ausnahme:

Traceback (jüngste Aufforderung zuletzt): Datei "/opt/apache-cassandra-3.0.3/bin/cqlsh.py", Linie 1249, in perform_simple_statement result = future.result() Datei „/ 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 ", Zeile 3122, Ergebnis raise self._final_exception ReadFailure: code = 1300 [Replik (en) konnten nicht gelesen werden] message = "Operation fehlgeschlagen - empfangen 0 Antworten und 1 Fehler" info = {'fehlgeschlagen': 1, 'received_responses ': 0,' erforderliche_Antworten ': 1,' Konsistenz ':' EIN '}

Weiß jemand, warum ich diesen Fehler bekomme?

Antwort

1

Ich brauchte eine "Range" Suche, keine "Date Range" Suche. Wenn Sie eine "Date Range" -Suche verwenden, haben Sie besser einen "Date Range Mapper" verwendet.

2

@ user1019182 ist völlig richtig, "date_range" -Suchen sind für die Verwendung mit indizierten Daten mit "date_range" Mapper, die Zeiträume von einem Start-und Stoppdatum mit einem räumlichen Ansatz indiziert.

Für einfache Daten innerhalb einer Zeitdauer suchen Sie eine „Bereich“ Suche verwenden sollen:

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 ist falsch, cqlsh Standard-Zeitformat verwendet ist nicht darauf.