首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索查询筛选器和日期排序

弹性搜索查询筛选器和日期排序
EN

Stack Overflow用户
提问于 2020-04-12 19:34:33
回答 1查看 171关注 0票数 0

假设每天都有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).

  • Apply 中应用排序和大小=1(返回日期(12:04:2020)的匹配查询)获得最新日期

我们能在一个查询中做得更好吗?

谢谢你帮忙!

EN

回答 1

Stack Overflow用户

发布于 2020-04-13 02:52:42

1.如果您知道记录的数量,可以使用单个查询.

对运行日期进行排序并获取n条记录

代码语言:javascript
复制
GET <indexname>/_search
{
  "from": 0,
  "size": 3,  --> n records
  "sort": [
    {
      "runDate": {
        "order": "desc"
      }
    }
  ]
}

2.如果您试图获取大于当前日期的记录()

代码语言:javascript
复制
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.获取最大日期并使用它查询该日期

代码语言:javascript
复制
{
  "size": 0, 
  "aggs": {
    "max_date": {
      "max": {
        "field": "runDate"
      }
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61177044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档