假设每天都有100条(一些任意数量的)记录被编入弹性索引,其中一个字段作为运行日期。现在,当查询弹性时,我们可以形成一个弹性查询,得到最新的runDate数据。
例如:
所有记录都在一个索引以下。
{"runDate":"11:04:2020“. } {"runDate":"11:04:2020”.}* 100项记录类似。
{“runDate”:“12:04:2020”. }{“runDate”:“12:04:2020”.}* 150项记录类似。
查询应该返回。
{“runDate”:“12:04:2020”. }{“runDate”:“12:04:2020”.}* 150项记录类似。
基于一个解决方案/两个查询。
从步骤1. 12:04:2020).
我们能在一个查询中做得更好吗?
谢谢你帮忙!
发布于 2020-04-13 02:52:42
1.如果您知道记录的数量,可以使用单个查询.
对运行日期进行排序并获取n条记录
GET <indexname>/_search
{
"from": 0,
"size": 3, --> n records
"sort": [
{
"runDate": {
"order": "desc"
}
}
]
}2.如果您试图获取大于当前日期的记录()
GET <indexname>/_search
{
"query": {
"range": {
"runDate": {
"gte": "now/d" --> now-1d/d from yesterday, other calculations are available
}
}
},
"from": 0,
"size": 3,
"sort": [
{
"runDate": {
"order": "desc"
}
}
]
}3.获取最大日期并使用它查询该日期
{
"size": 0,
"aggs": {
"max_date": {
"max": {
"field": "runDate"
}
}
}
}https://stackoverflow.com/questions/61177044
复制相似问题