mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
Add cardinality agg, modify field type filter to optionally accept and array of types, or '*'
This commit is contained in:
parent
738c7ec367
commit
7f2f98b0ab
4 changed files with 29 additions and 3 deletions
|
@ -24,7 +24,9 @@ define(function (require) {
|
|||
$scope.vis = vis;
|
||||
// .destroy() called by the visualize directive
|
||||
})
|
||||
.catch(notify.fatal);
|
||||
.catch(function (e) {
|
||||
console.log(e);
|
||||
});
|
||||
});
|
||||
|
||||
$scope.remove = function () {
|
||||
|
|
|
@ -16,6 +16,6 @@
|
|||
class="form-control"
|
||||
name="field"
|
||||
ng-model="config.field"
|
||||
ng-options="field.name as field.name for field in fields | fieldType:'number'">
|
||||
ng-options="field.name as field.name for field in fields | fieldType:aggs.metricAggsByName[config.agg].types">
|
||||
</select>
|
||||
</div>
|
|
@ -9,6 +9,7 @@ define(function (require) {
|
|||
{
|
||||
name: 'count',
|
||||
display: 'Count',
|
||||
types: ['number'],
|
||||
makeLabel: function (params) {
|
||||
return 'Count of documents';
|
||||
}
|
||||
|
@ -16,6 +17,7 @@ define(function (require) {
|
|||
{
|
||||
name: 'avg',
|
||||
display: 'Average',
|
||||
types: ['number'],
|
||||
makeLabel: function (params) {
|
||||
return 'Average ' + params.field;
|
||||
}
|
||||
|
@ -23,6 +25,7 @@ define(function (require) {
|
|||
{
|
||||
name: 'sum',
|
||||
display: 'Sum',
|
||||
types: ['number'],
|
||||
makeLabel: function (params) {
|
||||
return 'Sum of ' + params.field;
|
||||
}
|
||||
|
@ -30,6 +33,7 @@ define(function (require) {
|
|||
{
|
||||
name: 'min',
|
||||
display: 'Min',
|
||||
types: ['number'],
|
||||
makeLabel: function (params) {
|
||||
return 'Min ' + params.field;
|
||||
}
|
||||
|
@ -37,10 +41,19 @@ define(function (require) {
|
|||
{
|
||||
name: 'max',
|
||||
display: 'Max',
|
||||
types: ['number'],
|
||||
makeLabel: function (params) {
|
||||
return 'Max ' + params.field;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'cardinality',
|
||||
display: 'Unique count',
|
||||
types: ['*'],
|
||||
makeLabel: function (params) {
|
||||
return 'Unique count of ' + params.field;
|
||||
}
|
||||
},
|
||||
];
|
||||
aggs.metricAggsByName = _.indexBy(aggs.metricAggs, 'name');
|
||||
|
||||
|
|
|
@ -1,8 +1,19 @@
|
|||
define(function (require) {
|
||||
var _ = require('lodash');
|
||||
|
||||
require('modules')
|
||||
.get('kibana/filters')
|
||||
.filter('fieldType', function () {
|
||||
return function (arr, type) {
|
||||
if (type === '*') return arr;
|
||||
|
||||
if (_.isArray(type)) {
|
||||
if (_.contains(type, '*')) return arr;
|
||||
return _.filter(arr, function (field) {
|
||||
return _.contains(type, field.type);
|
||||
});
|
||||
}
|
||||
|
||||
return arr && arr.filter(function (field) {
|
||||
return (field.type === type);
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue