From 69c2fafa7a4d88067ae0c16f7e8475148fefe308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Thu, 28 Apr 2016 15:29:54 +0200 Subject: [PATCH] feat(elasticsearch): added geo hash bucket aggregation --- .../plugins/datasource/elasticsearch/bucket_agg.js | 11 +++++++++++ .../datasource/elasticsearch/partials/bucket_agg.html | 7 +++++++ .../plugins/datasource/elasticsearch/query_builder.js | 4 ++++ .../app/plugins/datasource/elasticsearch/query_def.js | 1 + 4 files changed, 23 insertions(+) diff --git a/public/app/plugins/datasource/elasticsearch/bucket_agg.js b/public/app/plugins/datasource/elasticsearch/bucket_agg.js index 18e2f3cf3b1..43ef4f91ab7 100644 --- a/public/app/plugins/datasource/elasticsearch/bucket_agg.js +++ b/public/app/plugins/datasource/elasticsearch/bucket_agg.js @@ -60,6 +60,10 @@ function (angular, _, queryDef) { $scope.agg.query = '*'; break; } + case 'geohash_grid': { + $scope.agg.settings.precision = 3; + break; + } } $scope.validateModel(); @@ -121,6 +125,13 @@ function (angular, _, queryDef) { if (settings.trimEdges && settings.trimEdges > 0) { settingsLinkText += ', Trim edges: ' + settings.trimEdges; } + break; + } + case 'geohash_grid': { + // limit precision to 7 + settings.precision = Math.max(Math.min(settings.precision, 7), 1); + settingsLinkText = 'Precision: ' + settings.precision; + break; } } diff --git a/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html b/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html index cb541c15fed..198c8f5636a 100644 --- a/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html +++ b/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html @@ -86,6 +86,13 @@ +
+
+ + +
+
+ diff --git a/public/app/plugins/datasource/elasticsearch/query_builder.js b/public/app/plugins/datasource/elasticsearch/query_builder.js index dd071ba137d..9c8217102aa 100644 --- a/public/app/plugins/datasource/elasticsearch/query_builder.js +++ b/public/app/plugins/datasource/elasticsearch/query_builder.js @@ -153,6 +153,10 @@ function (queryDef) { this.buildTermsAgg(aggDef, esAgg, target); break; } + case 'geohash_grid': { + esAgg['geohash_grid'] = {field: aggDef.field, precision: aggDef.settings.precision}; + break; + } } nestedAggs.aggs = nestedAggs.aggs || {}; diff --git a/public/app/plugins/datasource/elasticsearch/query_def.js b/public/app/plugins/datasource/elasticsearch/query_def.js index 099cb3607c3..b40fcb73023 100644 --- a/public/app/plugins/datasource/elasticsearch/query_def.js +++ b/public/app/plugins/datasource/elasticsearch/query_def.js @@ -22,6 +22,7 @@ function (_) { bucketAggTypes: [ {text: "Terms", value: 'terms', requiresField: true}, {text: "Filters", value: 'filters' }, + {text: "Geo Hash Grid", value: 'geohash_grid', requiresField: true}, {text: "Date Histogram", value: 'date_histogram', requiresField: true}, ],