mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[data.search.aggs] Use fields instead of _source in top_hits agg (#109531)
* [data.search] Handle warnings inside of headers * Update docs * Add tests * Remove isWarningResponse * [data.search.aggs] Use fields instead of _source in top_hits agg Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
f4c2a934f0
commit
02b2a4d086
2 changed files with 15 additions and 15 deletions
|
@ -133,28 +133,28 @@ describe('Top hit metric', () => {
|
|||
});
|
||||
|
||||
it('should request the _source field', () => {
|
||||
init({ field: '_source' });
|
||||
expect(aggDsl.top_hits._source).toBeTruthy();
|
||||
expect(aggDsl.top_hits.docvalue_fields).toBeUndefined();
|
||||
init({ fieldName: '_source' });
|
||||
expect(aggDsl.top_hits._source).toBe(true);
|
||||
expect(aggDsl.top_hits.fields).toBeUndefined();
|
||||
});
|
||||
|
||||
it('requests both source and docvalues_fields for non-text aggregatable fields', () => {
|
||||
it('requests fields for non-text aggregatable fields', () => {
|
||||
init({ fieldName: 'bytes', readFromDocValues: true });
|
||||
expect(aggDsl.top_hits._source).toBe('bytes');
|
||||
expect(aggDsl.top_hits.docvalue_fields).toEqual([{ field: 'bytes' }]);
|
||||
expect(aggDsl.top_hits._source).toBe(false);
|
||||
expect(aggDsl.top_hits.fields).toEqual([{ field: 'bytes' }]);
|
||||
});
|
||||
|
||||
it('requests both source and docvalues_fields for date aggregatable fields', () => {
|
||||
it('requests fields for date aggregatable fields', () => {
|
||||
init({ fieldName: '@timestamp', readFromDocValues: true, fieldType: KBN_FIELD_TYPES.DATE });
|
||||
|
||||
expect(aggDsl.top_hits._source).toBe('@timestamp');
|
||||
expect(aggDsl.top_hits.docvalue_fields).toEqual([{ field: '@timestamp', format: 'date_time' }]);
|
||||
expect(aggDsl.top_hits._source).toBe(false);
|
||||
expect(aggDsl.top_hits.fields).toEqual([{ field: '@timestamp', format: 'date_time' }]);
|
||||
});
|
||||
|
||||
it('requests just source for aggregatable text fields', () => {
|
||||
it('requests fields for aggregatable text fields', () => {
|
||||
init({ fieldName: 'machine.os' });
|
||||
expect(aggDsl.top_hits._source).toBe('machine.os');
|
||||
expect(aggDsl.top_hits.docvalue_fields).toBeUndefined();
|
||||
expect(aggDsl.top_hits._source).toBe(false);
|
||||
expect(aggDsl.top_hits.fields).toEqual([{ field: 'machine.os' }]);
|
||||
});
|
||||
|
||||
describe('try to get the value from the top hit', () => {
|
||||
|
|
|
@ -78,8 +78,8 @@ export const getTopHitMetricAgg = () => {
|
|||
},
|
||||
};
|
||||
} else {
|
||||
if (field.readFromDocValues) {
|
||||
output.params.docvalue_fields = [
|
||||
if (field.name !== '_source') {
|
||||
output.params.fields = [
|
||||
{
|
||||
field: field.name,
|
||||
// always format date fields as date_time to avoid
|
||||
|
@ -89,7 +89,7 @@ export const getTopHitMetricAgg = () => {
|
|||
},
|
||||
];
|
||||
}
|
||||
output.params._source = field.name === '_source' ? true : field.name;
|
||||
output.params._source = field.name === '_source';
|
||||
}
|
||||
},
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue