Проверить совокупный запрос в elasticsearch

Я надеюсь, что кто-нибудь может объяснить мне, почему у меня возникла эта проблема: я хочу проверить запрос ES (в версии 7.4) перед его запуском, все работает нормально, если в запросе нет предложения aggs, но, если в запросе есть aggs, ES говорит, что это недопустимый запрос, что сводит меня с ума, так это то, что запрос отлично работает в ES, но в то же время ES говорит мне, что это недействительный запрос.

Я думаю, это потому, что ES не проверяет запросы с aggs, но я хотел бы «убедиться», я прочитал документацию и не нашел подсказки.

Большое спасибо.

Это пример запроса ES, который я хочу проверить

        "query": {
            "bool": {
                "must": [
                    {
                        "match_phrase": {
                            "probe_id": {
                                "query": "probe id"
                            }
                        }
                    }
                ]
            }
        },
        "aggs": {
            "agg_by_hours": {
                "terms": {
                    "field": "hours",
                    "size": 24,
                    "order": {
                        "_term": "desc"
                    }
                }
            }
        }
    }```

person Francisco Moreno    schedule 10.12.2019    source источник


Ответы (1)


API проверки запросов поддерживает только query раздел, а не раздел aggs. Больше ничего, даже _source, sort, from и size. Вы также можете увидеть это в исходный код.

Если вы добавите ?explain=true к своему URL, вы увидите пояснение вроде:

{
  "valid" : false,
  "error" : "org.elasticsearch.common.ParsingException: request does not support [aggs]"
}

Таким образом, вы определенно можете проверить свой запрос, но возьмите только часть query, и все будет в порядке.

person Val    schedule 10.12.2019
comment
Большое спасибо @Val за ваш ответ и указание мне исходного кода, я ценю это. - person Francisco Moreno; 10.12.2019
comment
Круто, рад, что помогло! - person Val; 10.12.2019