ソースを参照

Change size on terms aggregation for ES 5.x

Leandro Piccilli 9 年 前
コミット
3057c9747c

+ 3 - 2
public/app/plugins/datasource/elasticsearch/query_builder.js

@@ -28,7 +28,8 @@ function (queryDef) {
       return queryNode;
     }
 
-    queryNode.terms.size = parseInt(aggDef.settings.size, 10);
+    queryNode.terms.size = parseInt(aggDef.settings.size, 10) === 0 ? 1000 : parseInt(aggDef.settings.size, 10);
+
     if (aggDef.settings.orderBy !== void 0) {
       queryNode.terms.order = {};
       queryNode.terms.order[aggDef.settings.orderBy] = aggDef.settings.order;
@@ -268,7 +269,7 @@ function (queryDef) {
       "1": {
         "terms": {
           "field": queryDef.field,
-          "size": 0,
+          "size": 1000,
           "order": {
             "_term": "asc"
           }

+ 5 - 2
public/app/plugins/datasource/elasticsearch/specs/datasource_specs.ts

@@ -151,7 +151,7 @@ describe('ElasticDatasource', function() {
   });
 
   describe('When issuing metricFind query on es5.x', function() {
-    var requestOptions, parts, header;
+    var requestOptions, parts, header, body;
 
     beforeEach(function() {
       createDatasource({url: 'http://es.com', index: 'test', jsonData: {esVersion: '5'}});
@@ -170,6 +170,7 @@ describe('ElasticDatasource', function() {
 
       parts = requestOptions.data.split('\n');
       header = angular.fromJson(parts[0]);
+      body = angular.fromJson(parts[1]);
     });
 
     it('should not set search type to count', function() {
@@ -177,10 +178,12 @@ describe('ElasticDatasource', function() {
     });
 
     it('should set size to 0', function() {
-      var body = angular.fromJson(parts[1]);
       expect(body.size).to.be(0);
     });
 
+    it('should not set terms aggregation size to 0', function() {
+      expect(body['aggs']['1']['terms'].size).to.not.be(0);
+    });
   });
 
 });