#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. Круто, рад, что это помогло. Я проверю ваш другой вопрос. О, и, кстати, спасибо за кофе 😉