Solrj Datum-Zeitzone
Benutze ich apache solr 4
, ich bin neu in Solr
ich Abfragen möchten zwischen zwei Terminen, aber ich habe ein problem mit der Zeitzone: Wenn ich Abfragen will eines Tages bekomme ich einen Tag vor diesem Tag.
String urlString = "http://localhost:8983/solr";
SolrServer solr = new CommonsHttpSolrServer(urlString);
QueryResponse rsp = solr.query( new SolrQuery("last_modified:[2013-01-03T00:00:00Z TO 2013-01-05T23:59:59Z]") );
SolrDocumentList docs = rsp.getResults();
for(int i=0;i<docs.getNumFound() ; i++) {
System.out.println (docs.get(i).getFieldValue("id"));
}
Ich gesucht, und gefunden habe ich eine Empfehlung:
schreiben +00:00 anstelle von Z verwendet . Zum Beispiel, 2002-10-10T12:00:00+05:00 ist 2002-10-10T07:00:00Z
Aber wenn ich das mache, bekomme ich die exception:
QueryResponse rsp = solr.query( new SolrQuery("last_modified:[2013-01-03T00:00:00+04:00 TO 2013-01-05T23:59:59+04:00]") );
Was kann ich tun, um das problem zu lösen?
- Nach Ihren SolrQuery Datumsbereich, Sie Abfragen, für 3 volle Tage im Wert von Daten - von 3. Januar 12 bis Januar 5 11:59PM, ist, dass das, was Sie beabsichtigen? Ihre Frage besagt, dass "Wenn ich Abfragen will one day". Wenn Sie wirklich nur wollen, um eine Abfrage nach nur einem Tag, wie dem 5. Januar, dann ändern Sie es zu
last_modified:[2013-01-05T00:00:00Z TO 2013-01-05T23:59:59Z]
- wenn ich Schreibe, wie dieser last_modified:[2013-01-05T00:00:00Z ZU 2013-01-05T23:59:59Z] ich bekomme Jan 6 ;
- wenn ich Schreibe, wie dieser last_modified:[2013-01-04T20:00:00Z ZU 2013-01-05T19:59:59Z] ich bekomme Jan 5; ich denke , es ist, weil ich für live +4Stunden Zeitzone, ist es nicht?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leider Solr unterstützt nur die
Z
- format, und nicht verstehen, Zeitzone syntax soweit ich informiert bin.Offensichtlich, Sie sind nicht in UTC-Zeit, so dass Sie wollen, zu konvertieren, um Ihre Zeit zone. Der einfachste Weg dies zu tun ist, um es in Ihrem code, mit dem richtigen Gebietsschema - z.B. berechnen, welche Zeit es war, UTC, für welchen Bereich Sie benötigen.
range
wird die Zeichenfolge enthalten[2013-01-02T20:00:00Z TO 2013-01-03T19:59:59Z]
das entspricht dem gesamten Tag der Dritten Januar in UTC + 4.