Frage

Ich habe ein Standard-Datetime-Feld in meiner Lehre-Basis-Entitätsklasse:

generasacodicetagpre.

Dies erzeugt ein Datettime-Objekt und arbeitet wie erwartet. Ein Problem tritt jedoch auf, wenn dieses Objekt in die foselasticabunde integriert ist. Aufgrund von DateTime-Objekten, die nicht das __tostring () -Methode unterstützen, musste ich meine elastische Konfiguration mit den Eigenschaften umstrukturieren, sodass der füllende Befehl ausgeführt wird:

generasacodicetagpre.

Dies füllt das Datum korrekt, aber es lädt im Standard-ElasticSearch-Format und ignoriert jede benutzerdefinierte Formatierung.

Das Problem ist, dass meine Bereichsabfragen basierend auf diesem Datumsfeld nicht die erwarteten Ergebnisse zurückgeben. Der folgende Filter kehrt nichts zurück, obwohl es Artikel in Elasticssuche in diesem Bereich gibt.

generasacodicetagpre.

Die resultierende Abfrage Wenn direkt in ElasticSearch über Curl ausgeführt wird, gibt die gleichen falschen Ergebnisse zurück.

Ich habe festgestellt, dass das Ändern des GTE-Param-Bis 2012 die erwarteten Ergebnisse in den Datumsbereich von 2013 zurückgegeben hat.

Alle Ideen? Vielen Dank.

War es hilfreich?

Lösung

Ich habe dies mit Hilfe dieser Antwort herausgefunden: ElasticsSearch Datumsbereich Kreuzung

Um Datumsbereiche zu erhalten, ordnungsgemäß funktionieren, müssen Sie zwei Filter kombinieren, anstatt zu versuchen, in einem zu tun:

generasacodicetagpre.

Dies gibt den richtigen Ergebnissen, obwohl ich sicher bin, dass es eine elegante Art, die Abfrage zu errichten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top