ich einige Daten nach Wochentag und Stunde gruppiert tun müssen, um bekommen, zum BeispielElasticsearch - Gruppe nach Wochentag und Stunde
curl -XGET http://localhost:9200/testing/hello/_search?pretty=true -d '
{
"size": 0,
"aggs": {
"articles_over_time" : {
"date_histogram" : {
"field" : "date",
"interval" : "hour",
"format": "E - k"
}
}
}
}
'
gibt mir diese:
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 2857,
"max_score" : 0.0,
"hits" : [ ]
},
"aggregations" : {
"articles_over_time" : {
"buckets" : [ {
"key_as_string" : "Fri - 17",
"key" : 1391792400000,
"doc_count" : 6
},
...
{
"key_as_string" : "Wed - 22",
"key" : 1411596000000,
"doc_count" : 1
}, {
"key_as_string" : "Wed - 22",
"key" : 1411632000000,
"doc_count" : 1
} ]
}
}
}
Jetzt brauche ich Um die Belegzahlen mit diesem Wert "Mi - 22" zusammenzufassen, wie kann ich das machen? Vielleicht ein anderer Ansatz?
Ein Nachteil der Nicht-Skript-Lösung ist, dass Sie mehrere Werte pro Stunde erhalten, wenn die Abfrage mehrere Tage umfasst, ist meine aktuelle Lösung, dies auf der Client-Seite zu kombinieren, da ich nur Skripting zu öffnen vermeiden möchte dafür. – centic
Nicht sicher, ob ich deinem Kommentar folge :-). Das Intervall und das Format sind miteinander verknüpft - das Intervall steuert das Bucketing, das Format steuert die Namen des Buckets. Wenn die Bucket-Namen alle eindeutig sein sollen, müssen Sie das Format entsprechend einstellen. ?! Alternativ kannst du 'key_as_string' ignorieren und stattdessen 'key' verwenden ;-). – RichS
Mein Ziel ist es, eine "Stunde des Tages" historgram für einen längeren Zeitraum zu bekommen. Es sollte zeigen, wie viele Dinge um 1 Uhr morgens um 2 Uhr morgens um 3 Uhr morgens passiert sind. Wenn ich nun interval: "hour" und format: "HH" setze, bekomme ich die erwarteten stündlichen Buckets mit key_as_string "01", "02", ..., aber sie werden für jeden Tag wiederholt, also bekomme ich mehrere "01 ", und mehrere" 02 ", ... – centic