Не могли бы вы помочь мне преобразовать этот запрос sql в эластичный поисковый запрос?Поиск максимальной даты в эластичном поисковом запросе
SELECT group,MAX(date) as max_date
FROM table
WHERE checks>0
GROUP BY group
Не могли бы вы помочь мне преобразовать этот запрос sql в эластичный поисковый запрос?Поиск максимальной даты в эластичном поисковом запросе
SELECT group,MAX(date) as max_date
FROM table
WHERE checks>0
GROUP BY group
Что делать, если у вас есть запрос, как показано ниже, при условии, что вы делаете в HTTP POST
. Вы могли бы просто использовать max скопления ES для того, чтобы получить максимальное значениеи использовать термины в Aggs для того, чтобы получить функцию GROUP BY
сделано.
Запрос:
вашдомен: 9200/your_index/_search
Запрос кузова:
{
"query": {
"query_string": {
"query": "checks > 0" <-- check whether this works, if not use the range query
}
},
"aggs": {
"groupby_group": {
"terms": {
"field": "group"
},
"aggs": {
"maximum": {
"max": {
"script": "doc['date'].value"
}
}
}
}
}
}
Для checks > 0
, вы могли бы пойти с range запроса, а также в запрос , который пакетирования выглядеть следующим образом:
"range" : {
"checks" : {
"gte" : 0
}
}
This один может помочь вам в выполнении агрегирования. Но, пожалуйста, убедитесь, что вы включили были от вашего elasticsearch.yml прежде чем попробовать запрашивая:
script.inline: on
Надеется, что это помогает!
Пожалуйста, добавьте вашу модель данных (индекс поиска elasticsearch). Без этого вам очень сложно помочь;) – NicolasY