OpenStreetMap Nominatim er en søgetjeneste, der bruger OpenStreetMap-data til at finde geografiske steder og placeringer…

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.
SELECT COUNT(*) FROM min_table WHERE status='active" AND type=2 GROUP BY user_id;
Men her er et eksempel på hvordan det kan lade sig gører.
{ "size" : 0, "query" : { "bool" : { "filter" : [ { "term" : { "status" : "active" } }, { "term" : { "type" : "2"} } ] } }, "aggs" : { "antal" : { "terms" : { "field" : "user_id" } } } }
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.
This Post Has 0 Comments