Hvis der er noget du ikke lige synes du kan visualisere ordenligt på en Zabbix…
COUNT og GROUP BY i Elasticsearch søgning
Hvis du har brug for at kunne tælle antallat af dokumenter ud fra noglel kriterier, vil man jo i SQL benytte COUNT og GROUP BY, men dette er ikke helt så nemt i Elasticsearch.
[code] SELECT COUNT(*) FROM min_table WHERE status=’active" AND type=2 GROUP BY user_id;[/code]
Men her er et eksempel på hvordan det kan lade sig gører.
[code] {"size" : 0,
"query" : {
"bool" : {
"filter" : [
{ "term" : { "status" : "active" } },
{ "term" : { "type" : "2"} }
] }
},
"aggs" : {
"antal" : {
"terms" : { "field" : "user_id" }
}
}
}
[/code]
I dette eksempel finder vi alle dokumnter som har status = active og type = 2. Dem laver vi så en aggeration på user_id.
Samtidig har jeg sat size til 0, dette vil gøre at vi ikke får andet tilbage end aggerationens retultat.
Comments (0)