2

我正在使用 Elasticsearch 2.3,对于用户在我的网站上访问的每个网页,我都会生成一条包含用户会话 ID 和当前时间戳的记录。
因此,我几乎没有具有相同会话 ID 但时间戳不同的记录。
我正在尝试date_histogram从用户记录中创建一个具有唯一会话 ID 的。

创建没有唯一性的直方图很容易:

{
    "aggs" : {
        "users_sessions" : {
            "date_histogram" : {
                "field" : "date",
                "interval" : "1h"
            }
        }
    }
}

但是是否有可能拥有具有唯一值的日期直方图(例如,每个唯一会话 id 的第一次出现)?

4

1 回答 1

4

尝试这个

{
  "size": 0,
  "aggs": {
    "users_sessions": {
      "date_histogram": {
        "field": "date",
        "interval": "1h",
        "min_doc_count": 0
      },
        "aggs": {
        "3": {
          "cardinality": {
            "field": "session_id"
          }
        }
      }
    }
  }
}

cardinality参数每小时获取唯一的会话 ID。

于 2018-05-29T07:31:30.077 回答