2009-06-11 21 views
0

Meine Lucene/Solr-Datenbank enthält eine Datumsspalte (created_at), die ich als Bedingung in einer Abfrage verwenden muss.Solr-Abfrage mit Ruby - Datum zu vergleichen

Ich bin neu in RoR und nehme an, dass RoR automatisch sein eigenes Datum Objekt auf anyObject.save verwendet, und dass Solr wiederum diese Spalte auf seine eigene Weise neu indiziert.

Unabhängig davon, ist das Datum in folgendem Format: „2008-06-03 11.15.20“

ich einen schnellen Parser schreiben kann mein Query-String in das obige Format parsen, aber wenn ich frage

Object.find (Stichwort: foo created_at> = '2008-06-03 11.15.20')

Solr wirft einen Parsing-Fehler. Ich habe mehrere Standardvarianten dazu ohne Erfolg ausprobiert. Irgendwelche Vorschläge?

Antwort

2

Ich hasse es, das Offensichtliche zu fragen, aber haben Sie die Solr-Dokumente für die Abfragesprache für Daten überprüft?

http://wiki.apache.org/solr/SolrQuerySyntax

und Erfahrung legt nahe, dass "> =" Operator keine gültige solr ist. Sie können Bereichsabfragen für Datumsfelder ausführen, aber das korrekte Format für Ihre Beispielabfrage wäre:

Object.find("keyword:foo AND created_at:[2008-06-03T11:15:20.000Z TO *]") 
Verwandte Themen