【问题标题】:Query to find the average number of entries for the given hour range查询以查找给定小时范围内的平均条目数
【发布时间】:2018-02-22 17:56:13
【问题描述】:

我有下面给出的查询,它应该找到给定时间范围内的平均条目数,即从 15:00 到 16:00。

此查询无法正常工作。如何指示小时范围(不含日期)并找到每个该范围的平均条目数?

POST /myindex/_search
{
  "size": 0,
  "query": {
    "bool": {
      "filter": [
        {"term": {"EventId": "11"}},
        {"term": {"EventType": "Type1"}}
      ]
    }
  },
  "aggs": {
    "range": {
        "date_range": {
            "field": "Datetime",
            "ranges": [
                { 
                   "from": "16:00-1H/H",
                   "to": "16:00/H" 
                }
            ]
        }
    }
  }
}

我应该使用移动平均线吗?怎么样?

我试过了,但如果有人能帮我完成这个查询,我将不胜感激。我不知道"value_count" : { "field" : "EventHour"} 是否是计算条目数的正确方法。如何在此查询中正确添加小时范围?:

    POST /myindex/_search
    {
      "size": 0,
      "query": {
        "bool": {
          "filter": [
            {"term": {"EventId": "11"}},
            {"term": {"EventType": "Type1"}},
{
          "script": {
            "script": "doc.date.date.getHourOfDay() >= min && doc.date.date.getHourOfDay() <= max",
            "params": {
              "min": 15,
              "max": 16
            }
          }
        }
          ]
        }
      },
      "aggs": {
        "hourly_intensity": {
          "date_histogram": {
            "field": "Datetime",
            "interval": "hour"
          },
          "aggs": {
            "count_of_events": {
              "value_count" : { "field" : "EventHour"}
            }
          }
        },
        "hourly_avg_count": {
          "avg_bucket": {
            "buckets_path": "hourly_intensity>count_of_events" 
          }
        }
      }
    }

【问题讨论】:

    标签: elasticsearch lucene elasticsearch-5


    【解决方案1】:

    我自己找到了解决方案:

       POST /myindex/_search
        {
          "size": 0,
          "query": {
            "bool": {
              "filter": [
                {"term": {"EventId": "11"}},
                {"term": {"EventType": "Type1"}},
                {"term": {"EventHour": 15}}
              ]
            }
          },
          "aggs": {
            "hourly_intensity": {
              "date_histogram": {
                "field": "Datetime",
                "interval": "hour"
              },
              "aggs": {
                "count_of_events": {
                  "value_count" : { "field" : "EventHour"}
                }
              }
            },
            "avg_num_events_per_hour": {
              "avg_bucket": {
                "buckets_path": "hourly_intensity>count_of_events" 
              }
            }
          }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-18
      • 2020-03-23
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      相关资源
      最近更新 更多