【问题标题】:ElasticSearch Date Range Aggregation over different fields不同字段上的 ElasticSearch 日期范围聚合
【发布时间】:2017-05-12 10:04:47
【问题描述】:

我希望能够获取用户提供的特定日期范围内的文档并显示要查看的文档。我当前构建的查询如下所示: 查询

    {
        "aggs": {
            "range": {
                "date_range": {
                    "field": "metadata.o2r.temporal.begin",
                    "ranges": [
                        { "from": "2017-03-30T12:35:41.142Z",  "to": "2017-08-02T22:00:00.000Z", "key": "quarter_01" }
                    ],
                    "keyed": true
                }
            }
        }
    }

'

我试图获取的 json 文档的时间部分如下所示:

JSON

"temporal": {
"begin": "2017-08-01T22:00:00.000Z",
"end": "2017-03-30T12:35:41.142Z"
},

目前我可以查询“开始”或“结束”,但我希望能够修改查询,使 begin 成为“from”和 end 的值 成为“to”的值。问题就在这里,我不希望我的原始 JSON 被修改。

更新的查询

curl -XGET 'localhost:9201/test/_search?size=0&pretty' -H 'Content-Type: application/json' -d'
> {
> "query": {
>     "bool": {
>         "must": [
>            {
>                "range": {
>                   "metadata.o2r.temporal.begin": {
>                      "from": "2016-01-01T12:35:41.142Z"
>                   }
>                }
>            } , 
>            {
>                "range": {
>                   "metadata.o2r.temporal.end": {
>                      "to": "2016-12-30T22:00:00.000Z"
>                    }
>                 } 
>             }
>           ]
>       }
>   }
> }
> '

回应

{
  "took" : 1678,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 0.0,
    "hits" : [ ]
  }
}

【问题讨论】:

  • 你为什么要使用聚合?你需要汇总数据吗
  • @Richa 好吧,我想显示属于某个日期范围内的所有文档,为此我的拙见聚合比日期范围查询更好?
  • 除非您使用子聚合,否则聚合只会获取您的计数。你不是对文档感兴趣吗
  • @Richa 我是,但首先我想以问题中提到的方式修改查询
  • 已回答。看看它是否符合您的要求。

标签: json elasticsearch


【解决方案1】:

这可能对你有帮助

{
"query": {
    "bool": {
        "must": [
           {
               "range": {
                  "metadata.o2r.temporal.begin": {
                     "from": "2017-03-30T12:35:41.142Z"
                  }
               }
           } , 
           {
               "range": {
                  "metadata.o2r.temporal.end": {
                     "to": "2017-08-02T22:00:00.000Z"
                   }
                } 
            }
          ]
      }
  }
}

【讨论】:

    猜你喜欢
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多