Запрос возвращает [parsing_exception] [размер] запрос неправильно сформирован, нет start_object после имени запроса, с {line=1 & col=264}

Я новичок в elasticsearch и пытаюсь использовать инструменты разработчика для создания фильтров. вот что работает, и я хочу использовать

POST /transform_alldomain/_search
{
  "size":0,
    "aggs": {
        "group": {
            "terms": {
                "field": "Email.keyword"
            },
            "aggs": {
        "group": {
            "terms": {
                "field": "bln.keyword"
            },
            "aggs": {
                "group_docs": {
                    "top_hits": {
                        "size": 1,
                        "sort": [
                            {
                                "extract_date.max": {
                                    "order": "desc"
                                }
                            }
                        ]
                    }
                }
            }
        }
    }
}
}}

теперь я хочу использовать этот похожий материал для фильтрации, введите это в фильтр, отредактируйте как запрос dsl

{
  "size":0,
    "aggs": {
        "group": {
            "terms": {
                "field": "Email.keyword"
            },
            "aggs": {
        "group": {
            "terms": {
                "field": "bln.keyword"
            },
            "aggs": {
                "group_docs": {
                    "top_hits": {
                        "size": 1,
                        "sort": [
                            {
                                "extract_date.max": {
                                    "order": "desc"
                                }
                            }
                        ]
                    }
                }
            }
        }
    }
}
}}

он возвращается

[parsing_exception] [size] query malformed, no start_object after query name, with { line=1 & col=324 }

Я не знаю, в чем разница и как заставить это работать

Мне нужно создать искомый объект из этого

Как я выполняю фильтр:

он возвращается

оба запроса, которые вы дали в вопросе, точно похожи. Запустив какой запрос вы получаете ошибку?

ESCoder 13.12.2020 03:46

дорогой @ESCoder, я добавил, как я его выполняю и как он возвращается. Да оба одинаковые

yuliansen 13.12.2020 03:56

Я действительно новичок в такого рода запросах, пожалуйста, сообщите мне об этом. Моя цель - создать сохраненный поиск.

yuliansen 13.12.2020 03:59

Вы не можете использовать агрегации на панели «Редактировать фильтр». Эта панель предназначена только для запросов, а не для агрегаций. Агрегации можно выполнять с помощью приложения Visualization, а не приложения Discover.

Val 14.12.2020 06:17
0
4
649
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Приложение Discover не является подходящим инструментом для создания агрегаций, приложение Discover полезно только для запросов и фильтров.

То, чего вы хотите достичь, можно сделать с помощью визуализации таблицы данных. Поэтому вместо «Обнаружение» перейдите к «Визуализация», затем выберите «Создать визуализацию».

Затем выберите визуализацию «Таблица данных».

Затем выберите шаблон индекса

И, наконец, вы можете определить свои две агрегации terms следующим образом:

Уважаемый @Val, большое спасибо за ответ и объяснение, но он хочет, чтобы он был визуализирован другим приложением для визуализации, таким как гистограмма или круговая диаграмма, поэтому я пытаюсь создать из него сохраненный поиск или индекс, поскольку таблица данных - это визуализация, а показанные данные нельзя использовать для создания круговой диаграммы и т. д. Или у вас есть обходной путь?

yuliansen 14.12.2020 06:29

В приведенном выше запросе нет запроса части фильтра (т. е.), только агрегации, поэтому в Discover ничего нельзя сохранить (т. е. нет сохраненного поиска). Я предложил Таблицу данных, потому что подумал, что вы хотите увидеть результат, аналогичный результату Discover (то есть строки). Но вы можете выбрать любую другую визуализацию, которая поддерживает агрегацию terms, например гистограмму, круговую диаграмму и т. д. Попробуйте их.

Val 14.12.2020 06:32

Большое спасибо за ваше объяснение @Val, но я до сих пор не понимаю, как получить свою цель. моя цель - удалить дубликаты на основе нисходящей временной метки, используя tophits1. На пироге я не видел ничего, что могло бы это сделать.

yuliansen 14.12.2020 06:38

Ну, в вашем вопросе не упоминается ваш точный вариант использования (удалите дубликаты) :-)

Val 14.12.2020 06:40

пожалуйста, простите меня за это. Я протестировал код в инструментах разработки, он возвращает какой-то результат, могу ли я создать сохраненный поиск из приведенного выше кода из инструментов разработки?

yuliansen 14.12.2020 06:44

Как я только что объяснил, нет, вы не можете, потому что это не запрос, это просто некоторые агрегации, а сохраненный поиск касается совпадений запроса (т.е. документов), а не агрегаций. Ваш запрос неявно "match_all": {}, поэтому нет запроса для сохранения. Однако я уверен, что таблица данных — это визуализация, необходимая для достижения желаемого.

Val 14.12.2020 06:45

дорогой Вэл, большое спасибо за объяснение, похоже, мне нужно создать еще один обходной путь. Пожалуйста, помогите мне, загляните в эту тему @Val: stackoverflow.com/questions/65246803/…. Я так слеп в эластичности. Спасибо

yuliansen 14.12.2020 06:49

Другие вопросы по теме