запрос возвращает [parsing_exception] [size] запрос неверно сформирован, после имени запроса нет start_object, с {line=1

#elasticsearch #kibana #dsl

#elasticsearch #kibana #dsl

Вопрос:

Я новичок в 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 amp; col=324 }
 

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

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

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

введите описание изображения здесь

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

введите описание изображения здесь

Комментарии:

1. оба запроса, которые вы указали в вопросе, в точности похожи. При выполнении какого запроса вы получаете ошибку?

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

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

4. Вы не можете использовать агрегированные данные на панели редактирования фильтра. Эта панель предназначена только для запросов, а не для агрегирования. Агрегирование может быть выполнено с помощью приложения визуализации, а не приложения Discover.

Ответ №1:

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

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

Создать визуализацию

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

Таблица данных

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

Шаблон индекса

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

Агрегирование терминов

Комментарии:

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

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

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

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

5. Круто, рад, что это помогло. Я проверю ваш другой вопрос. О, и, кстати, спасибо за кофе 😉