Skip to content

Commit

Permalink
support scripted fields
Browse files Browse the repository at this point in the history
  • Loading branch information
scampi committed Oct 23, 2016
1 parent b99d6c7 commit f79cdc1
Showing 1 changed file with 19 additions and 7 deletions.
26 changes: 19 additions & 7 deletions src/ui/public/agg_types/metrics/top_hit.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { noop } from 'lodash';
import { get, has, noop } from 'lodash';
import MetricAggTypeProvider from 'ui/agg_types/metrics/metric_agg_type';
import topSortEditor from 'ui/agg_types/controls/top_sort.html';

Expand All @@ -22,10 +22,21 @@ export default function AggTypeMetricTopProvider(Private) {
return value === 'number';
},
write(agg, output) {
output.params = {
size: 1,
docvalue_fields: [ agg.params.field.name ]
};
const field = agg.params.field;
output.params = { size: 1 };

if (field.scripted) {
output.params.script_fields = {
[ field.name ]: {
script: {
inline: field.script,
lang: field.lang
}
}
};
} else {
output.params.docvalue_fields = [ field.name ];
}
}
},
{
Expand Down Expand Up @@ -59,10 +70,11 @@ export default function AggTypeMetricTopProvider(Private) {
}
],
getValue(agg, bucket) {
if (!bucket[agg.id].hits.hits.length) {
const hits = get(bucket, `${agg.id}.hits.hits`);
if (!hits || !hits.length || !has(hits[0], 'fields')) {
return;
}
return bucket[agg.id].hits.hits[0].fields[agg.params.field.name][0];
return hits[0].fields[agg.params.field.name] && hits[0].fields[agg.params.field.name][0];
}
});
};

0 comments on commit f79cdc1

Please sign in to comment.