【问题标题】:Get maximum and minimum value using group by channel id使用 group by channel id 获取最大值和最小值
【发布时间】:2020-06-03 02:15:40
【问题描述】:

我想使用 group by channel id 获得最大值和最小值,还想获得最大视频 id 和最小视频 id

 {

  "query": {
    "term": {
      "channel_id.keyword": {
        "value": "UCQOd1f6pYldvhgvdQ_ktpGA"
      }
    }
  },
  "aggs": {
    "views_max": {
      "max": {
        "field": "views",
        "missing": 0
      },
      "_source":["video_id","views"]
    },
     "views_min": {
      "min": {
        "field": "views",
        "missing": 0
      },
       "_source":["video_id","views"]
    }
  }
}

【问题讨论】:

  • 在此代码上遇到一些异常“在 [_source] 下应为 [START_OBJECT],但在 [views_max] 中有 [START_ARRAY]”,

标签: elasticsearch elasticsearch-aggregation elasticsearch-query


【解决方案1】:
{
  "aggs": {
    "2": {
      "terms": {
        "field": "channel_id.keyword",
        "order": {
          "1": "desc"
        },
        "size": 10
      },
      "aggs": {
        "1": {
          "max": {
            "field": "video_id"
          }
        },
        "3": {
          "min": {
            "field": "video_id"
          }
        }
      }
    }
  },
  "size": 0,
  "_source": {
    "excludes": []
  },
  "query": {
    "bool": {
      "must": [],
      "filter": [
        {
          "bool": {
            "should": [
              {
                "match": {
                  "channel_id.keyword": "UCQOd1f6pYldvhgvdQ_ktpGA"
                }
              }
            ],
            "minimum_should_match": 1
          }
        }
      ]
    }
  }
}

上面的查询将给出特定 channel_id 的 video_id 的最大值和最小值。

{
  "aggs": {
    "2": {
      "terms": {
        "field": "channel_id.keyword",
        "order": {
          "1": "desc"
        },
        "size": 10
      },
      "aggs": {
        "1": {
          "max": {
            "field": "video_id"
          }
        },
        "3": {
          "min": {
            "field": "video_id"
          }
        }
      }
    }
  },
  "size": 0,
  "_source": {
    "excludes": []
  }
}

通过上述查询,您将能够为所有不同的 channel_id 获取其各自的最大和最小 video_id

【讨论】:

  • 实际上我想要按频道 ID 的最大观看次数和最小观看次数,然后是最大观看视频 ID 和最小观看视频 ID
  • 你能再详细点吗?
  • 我想按一个 channel_id 分组并从频道 id 获得最大观看次数和最小观看次数,还想获得最大记录 video_id 和最小记录 video_id
猜你喜欢
  • 2020-06-24
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多