Ich habe einen Elastic-Suchindex aus einer Mongo-Datenbank erstellt. Die Dokumente in Mongo haben die folgende Struktur:Elastische Suchbereichsdaten
{
"_id" : ObjectId("525facace4b0c1f5e78753ea"),
"time" : ISODate("2013-10-17T09:23:56.131Z"),
"type" : "A",
"url" : "www.google.com",
"name" : "peter",
}
Der Index wurde erstellt (scheinbar) ohne Probleme. Jetzt versuche ich die elastische Suche zu verwenden, um die Dokumente im Index zwischen zwei Daten abzurufen. Ich habe gelesen, dass ich Bereichsabfragen verwenden, aber ich habe viele Male die Dinge versucht, wie
MatchQueryBuilder queryBuilder = QueryBuilders.matchQuery("name", "peter").type(Type.PHRASE).minimumShouldMatch("99%");
LocalDateTime toLocal = new LocalDateTime(2013,12,18, 0, 0);
Date to = toLocal.toDate();
LocalDateTime fromLocal = new LocalDateTime(2013,12,17, 0, 0);
Date from = fromLocal.toDate();
RangeQueryBuilder queryDate = QueryBuilders.rangeQuery("time").to(to).from(from);
FilterBuilder filterDate = FilterBuilders.queryFilter(queryDate);
srb = esH.client.prepareSearch("my_index");
srb.setQuery(queryBuilder);
srb.setFilter(filterDate);
sr = srb.execute().actionGet();
und ich bekomme 0 Treffer obwohl es sollte viele Ergebnisse sein. Ich habe versucht, Zeichenfolgen anstelle von Daten einzugeben, aber dieselben Ergebnisse.
Wenn ich eine grundlegende Abfrage ohne Filter zuführen:
MatchQueryBuilder queryBuilder = QueryBuilders.matchQuery("name", "peter").type(Type.PHRASE).minimumShouldMatch("99%");
SearchRequestBuilder srb = esH.client.prepareSearch("my_index");
rb.setQuery(queryBuilder);
SearchResponse sr = srb.execute().actionGet();
ich Hits mit, dass wie folgt aussehen:
{
"_index" : "my_index",
"_type" : "type",
"_id" : "5280d3c2e4b05e95aa703e34",
"_score" : 1.375688, "_source" : {"type":["A"],"time":["Mon Nov 11 13:55:30 CET 2013"],"name":["peter"]}
}
Wo das Feld time
nicht das Format ISODate("2013-10-17T09:23:56.131Z")
mehr hat.
Zusammenfassend, was wäre der Java-Code (und Typen) für die Abfrage zwischen zwei Daten (und Zeiten), unter Berücksichtigung des Formats?
Könnten Sie die aktuelle JSON-Abfrage hinzufügen, dass der Builder Erzeugung? Es ist wirklich schwer zu sagen, was passiert, ohne zu sehen, was ES tatsächlich sieht. – drewish