首页 > 解决方案 > Elasticsearch 中的 Goal Scoring Streaks 查询

问题描述

Elasticsearch 中的目标得分条纹

问题

我在 Elasticsearch 中有一个体育数据索引,其中每条记录代表玩家玩过的游戏。我想利用该指数来查找最长的连胜纪录,例如,球员在比赛中至少进一球的最长连胜纪录是多少?我们可以用这个问题举个例子。

架构

假设我们正在回答目标条纹问题,则每个文档都可以使用以下字段。显然还有很多我认为没有必要的信息,但如果我遗漏了什么,请指出,我会提供更新。

{
  player_id: String,
  game_id: String,
  goals: Number,
  datetime_played: Date
}

问题

我如何获得最长连续进球数的列表?如果某场比赛的球员进球数为 0,则应该打破连胜纪录。

工作至今

这不是很多,但总的来说,我认为我会首先将事情按player_id(如下面的查询),然后继续寻找玩家goals > 0在 a 序列中拥有多个游戏的任何地方,然后在玩家中找到最大值. 我主要迷失在“找到连续的游戏数量goals > 0”问题的一部分。

{
  "size": 0, 
  "aggs": {
    "player_goal_streaks": {
      "terms": {
        "field": "player_id.keyword",
        "size": 10
      }
    }
  }
}

标签: elasticsearchkibana

解决方案


推荐阅读