0
Ich habe einige Dokumente wie jene (Proben ist ein verschachteltes Objekt im _mapping):Elasticsearch: Aggregationen an verschachtelten Objekten
"_source": {
"samples": [
{
"name": "A",
"d": 0.1
},
{
"name": "B",
"d": 0.2
},
... A THOUSAND SAMPLES
{
"name": "N",
"d": 197
}
],
"Date": "2015-10-01T01:06:59+0000",
"fwot": "ENGINE1"
}
und
"_source": {
"samples": [
{
"name": "A",
"d": 0.2
},
{
"name": "C",
"d": 10032
},
... A THOUSAND SAMPLES NOT NECESSARILY THE SAME FOR ALL THE DOCUMENTS
{
"name": "N",
"d": 292
}
],
"Date": "2015-10-01T01:07:59+0000",
"fwot": "ENGINE1"
}
und ich möchte Aggregationen Statistiken auf N
machen um Histogramme nach Eimern der Probe A
zu machen Ich beginne mit einem Filter auf den Dokumenten, um die relevanten Dokumente
zu erhalten {
"nested": {
"path": "samples",
"query": {
"bool": {
"should": [
{ "match": { "samples.name": "A" }},
{ "match": { "samples.name": "N"}}
]
}}}
}
aber jetzt, was könnte der Aggregationsteil sein?
"aggs": {
"samples": {
"nested": {
"path": "samples"
},
"aggs": {
"n_stats_by_a": {
"histogram": {
// ONLY ON SAMPLES WHERE name='A'
"field": "samples.d",
"interval": 0.1
}
//DO A METRICS ON samples.d ONLY ON SAMPLES WHERE name='N'
}
}
}
}
Ich möchte so etwas wie Ausgang
"aggregations": {
"samples": {
"doc_count": 57716,
"n_stats_by_a": {
"doc_count": 177,
"agg_histogram": {
"buckets": [
{
"key": "A_0.0_TO_0.1",
"avg_N": 182.332 //average of N when A between 0 and 0.1
},
{
"key": "A_0.1_TO_0.2",
"avg_N": 198.332 //average of N when A between 0.1 and 0.2
}
...
]
}
}
}
}
Dieses 2 Aggregationen mit Eimern 'n_stats_by_d' führen würde und' n_stats_by_a'. Jetzt weiß ich nicht, wie man den Durchschnittswert von 'N' in jedem Eimer von' n_stats_by_a' erhält –
Bitte spezifizieren Sie die Beispielausgabe ?? – Richa
Bearbeitete meine Antwort. Hoffe, das hilft .. – Richa