Elasticsearch: Sort results by index order as well as @timestamp (#29761)
* Elasticsearch - sort results by index order as well as timestamp. * Fix test.
This commit is contained in:
@@ -125,7 +125,14 @@ export class ElasticQueryBuilder {
|
||||
documentQuery(query: any, size: number) {
|
||||
query.size = size;
|
||||
query.sort = {};
|
||||
query.sort[this.timeField] = { order: 'desc', unmapped_type: 'boolean' };
|
||||
query.sort = [
|
||||
{
|
||||
[this.timeField]: { order: 'desc', unmapped_type: 'boolean' },
|
||||
},
|
||||
{
|
||||
_doc: { order: 'desc' },
|
||||
},
|
||||
];
|
||||
|
||||
// fields field not supported on ES 5.x
|
||||
if (this.esVersion < 5) {
|
||||
|
||||
@@ -224,12 +224,7 @@ describe('ElasticQueryBuilder', () => {
|
||||
],
|
||||
},
|
||||
},
|
||||
sort: {
|
||||
'@timestamp': {
|
||||
order: 'desc',
|
||||
unmapped_type: 'boolean',
|
||||
},
|
||||
},
|
||||
sort: [{ '@timestamp': { order: 'desc', unmapped_type: 'boolean' } }, { _doc: { order: 'desc' } }],
|
||||
script_fields: {},
|
||||
});
|
||||
});
|
||||
@@ -552,7 +547,10 @@ describe('ElasticQueryBuilder', () => {
|
||||
};
|
||||
expect(query.query).toEqual(expectedQuery);
|
||||
|
||||
expect(query.sort).toEqual({ '@timestamp': { order: 'desc', unmapped_type: 'boolean' } });
|
||||
expect(query.sort).toEqual([
|
||||
{ '@timestamp': { order: 'desc', unmapped_type: 'boolean' } },
|
||||
{ _doc: { order: 'desc' } },
|
||||
]);
|
||||
|
||||
const expectedAggs = {
|
||||
2: {
|
||||
|
||||
Reference in New Issue
Block a user