2017-09-15 2 views
0

Ist es möglich, mit elasticsearch ein Beispiel für ein Dokument zu erhalten, das für ein in der Aggregation berechnetes Perzentil repräsentativ ist?Beispieldokument der Perzentil-Aggregation abrufen

Angesichts dieser Aggregation möchte ich ein Beispiel für ein Dokument innerhalb jedes Perzentils erhalten.

Zum Beispiel:

"values": [ 
    { 
      "key": 1.0, 
      "value": 1462.8400000000001, 
      "hit": { 
      "_source":... 
     } 
     }, 

Also würde man eine Probe von dem, was ein Dokument in dieser Perzentil ergibt, ist.

Ist es in einer Abfrage möglich? Ich könnte immer eine zweite Abfrage Suche nach my_value größer als die 9. Perzentile und kleiner als die 11. tun. Aber ich würde es gerne in einer Abfrage machen.

Irgendwelche Ideen?

+0

Die Frage ist nicht klar genug. Können Sie genauer sein und ein Beispiel dafür geben, was Sie brauchen? –

+0

bearbeitet die Fragen – Wonay

Antwort

0

Versuchen Top hits Aggregation:

{ 
    "aggregations": { 
    "agg_percentile": { 
     "percentiles": { 
     "field": "my_value", 
     "percents": [ 
      10, 
      50, 
      95 
     ], 
     "keyed": false # --> pay attention, you now will get each percentile in seperate bucket 
     }, 
     "aggregations":{ 
     "top_hits":{ 
      "size": 1 
     } 
     } 
    } 
    } 
} 

Beachten Sie, dass wir das keyed Argument false gesetzt.

Wie in der docs beschrieben - es trennt jedes Perzentil zu einzelnen Bucket - was gibt uns die Möglichkeit, eine weitere Ebene der Aggregation hinzufügen - Top Hits für jedes Perzentil.