7,540
edits
Changes
→Metrika aggregáció
'''Átlag'''<br>
Számoljuk ki, hogy a '''bank''' indexben tárolt ügyfeleknek mekkora az átlagéletkora. Ez egy '''single-value numeric metrics aggregation''', amiben az '''avg''' függvényt fogjuk használni az '''age''' mezőre. A '''size=0'''-val azt érjük el, hogy a '''_search'''-el megtalált dokumentumokat ne adja vissza, csak az aggregáció végeredményét. Alapértelmezetten az első 10 találatot adná vissza, ahogy azt már láttuk, és a végére tenni oda az aggregáció eredményét. Az aggregációnk neve avg_age lesz, ide bármilyen nevet meg lehet adni, ezzel a névvel lesz a végeredmény a válaszban. Tudjuk hogy a '''bank''' indexben lévő dokumentumoknak van '''age''' mezője, erre akarjuk végrehajtani az '''avg''' függvényt.
<pre>
{
"aggs" : {
"avg_age" : { "avg" : { "field" : "age" , "missing": 20 } }
}
}
'
</pre>
A '''missing''' paraméter azt mondjuk meg, hogy ilyen értékkel vegye figyelembe azokat a dokumentumokat, amikben nincs ilyen mező, jelen esetben a age. Mert hogy egy index-ben belül sem kell hogy egyezzenek a dokumentumok, bármilyen struktúrájú dokumentumot beszúrhatunk. Ha egy dokumentumban nem lenne '''age''' mező, akkor azt 20-al venné figyelembe.
Nézzük meg a végeredményt. Az elején van a szokásos statisztika, láthatjuk, hogy mind az 1000 dokumentumot figyelembe vette, majd jönnek az aggregációs eredmények az '''aggregations''' listában.
</pre>
Egy szem eredmény van benne, az '''avg_age''', aminek az értéke 30.171, vagyis az átlagéletkora az ügyfeleknek 30.171 év.
<br>
'''Súlyozott átlag'''<br>
A súlyozott átlagnál, minden egyes értékét megszorzunk a súllyal, és az eredmények összegét elosztjuk a súlyok összegével. (A normál átlag felfogható súlyozott átlagnak, ahol minden súly = 1):
∑(value * weight) / ∑(weight)
A súlyozott átlag aggregációnak már nem csak egy szimpla mező név paramétere van:
* '''value''': The configuration for the field or script that provides the values (Required)
** '''field''': The field that values should be extracted from
** '''missing''': A value to use if the field is missing entirely
* '''weight''': The configuration for the field or script that provides the weights (Required)
** '''field''': The field that values should be extracted from
** '''missing''': A value to use if the field is missing entirely
* '''format''': The numeric response formatter (Optional)
* '''value_type''': A hint about the values for pure scripts or unmapped fields (Optional)
<br>