Hi ES experts, I have instances (XWiki instances to be precise) sending pings every day to an ES server (the model is very simple: one _timestamp field for the date and an "instanceId" field for uniquely identifying the instance sending the ping).
I'd like to find how to write a query that shows the average number of days each instance has been sending pings, by displaying counts for instances having their last ping date - first ping date < 1 day, between 1 day and 7 days, between 7 days and 365 days and over 365 days. I've tried several aggregations but I can't find one that will work out. I'd like something like this: curl -XGET "http://localhost:9200/installs/install/_search?search_type=count&pretty=1" -d' { "aggs": { "installs_by_range" : { "range" : { "script" : "<compute max_date - min_date in days here>", "ranges" : [ { "to" : 2 }, { "from" : 2, "to" : 30 }, { "from" : 30, "to" : 365 }, { "from" : 365 } ] }, "aggs" : { "instanceIds" : { "terms" : { "field" : "instanceId" }, "aggs" : { "min_date" : { "min" : { "field" : "_timestamp" } }, "max_date" : { "max" : { "field" : "_timestamp" } } } } } } } }' Here's a script to generate some minimal data: http://design.xwiki.org/xwiki/bin/view/Proposal/ActiveInstalls2#HData -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/0541a994-e254-4056-b294-20a036b0616b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
