feat: add support for range filters

This commit is contained in:
Wieland Schöbl
2020-11-30 16:21:04 +01:00
committed by Rainer Killinger
parent 785813c3fb
commit dcf7906f79
5 changed files with 466 additions and 136 deletions

View File

@@ -283,6 +283,53 @@ export interface ESTermFilter {
};
}
export interface ESGenericRange<T> {
/**
* Greater than field
*/
gt?: T;
/**
* Greater or equal than field
*/
gte?: T;
/**
* Less than field
*/
lt?: T;
/**
* Less or equal than field
*/
lte?: T;
}
interface ESGenericRangeFilter<G, T extends ESGenericRange<G>> {
/**
* Range filter definition
*/
range: {
[fieldName: string]: T;
};
}
export interface ESDateRange extends ESGenericRange<string> {
/**
* Optional date format override
*/
format?: string;
/**
* Optional timezone specifier
*/
time_zone?: string;
}
export type ESNumericRangeFilter = ESGenericRangeFilter<number, ESGenericRange<number>>;
export type ESDateRangeFilter = ESGenericRangeFilter<string, ESDateRange>;
export type ESRangeFilter = ESNumericRangeFilter | ESDateRangeFilter;
/**
* Checks if the parameter is of type ESTermsFilter
* @param agg the value to check
@@ -435,9 +482,9 @@ export interface ESFunctionScoreQueryFunction {
}
/**
* An elasticsearch ducet sort
* An elasticsearch generic sort
*/
export interface ESDucetSort {
export interface ESGenericSort {
[field: string]: string;
}