Мы написали запрос эластичного поиска для получения сгруппированных данных из индекса для указанного c диапазона дат. Однако если мы увеличим диапазон дат, размер нашего запроса увеличится с помощью динамически добавленных предложений диапазона дат. динамически увеличивающийся пример запроса
"query": {
"bool": {
"filter": [
{
"bool": {
"minimum_should_match": 1,
"must": [
{
"range": {
"startDate": {
"gte": "2018-05-28T21:00:00Z",
"lte": "2021-04-04T20:59:59Z"
}
}
}
],
"should": [
{
"bool": {
"must": [
{
"range": {
"startDate": {
"gte": "2019-12-24T04:30:00Z",
"lte": "2019-12-24T14:00:00Z"
}
}
}
]
}
},
{
"bool": {
"must": [
{
"range": {
"startDate": {
"gte": "2020-11-09T04:30:00Z",
"lte": "2020-11-09T14:00:00Z"
}
}
}
]
}
},
{
"bool": {
"must": [
{
"range": {
"startDate": {
"gte": "2020-07-28T14:00:00Z",
"lte": "2020-07-28T20:59:00Z"
}
}
}
]
}
}
]
}
},
{
"term": {
"tenantId": {
"value": "b29aadd8-b1bb-4754-ab26-b59eebe6d86a"
}
}
},
{
"term": {
"status.keyword": {
"value": "ProductionEnd"
}
}
},
{
"range": {
"startDate": {
"gte": "2018-05-28T21:00:00Z",
"lte": "2021-04-04T20:59:59Z"
}
}
}
]
}},
У нас есть данные на основе времени, и мы хотим отфильтровать их по дате и времени, как описано выше, но мы хотим отфильтровать данные за 3 месяца, и будет слишком большой фильтр диапазона, и мы получим ошибка ( "too_many_clauses" ) из-за размера запроса. Итак, мы хотим уменьшить количество запросов. Как мы можем переписать запрос?
Спасибо