0

2 つの異なる期間のユニーク ユーザーを取得するエラスティック検索クエリを作成しています。また、総ユーザー数。これは、今日の Web サイトのユニーク ユーザーを特定するためのものです。

私が計画しているのは、合計ユーザーと昨日までのユーザーを計算し、(total_users - users_until_yesterday) を引いて、今日のユニーク ユーザーを取得することです。

users_until_yesterday は、before_and_after_today 集計の最初のバケットです。

このクエリを実行すると、users_until_yesterday の値が total_users より多くなります。理由はわかりません

よろしくお願いします。

{
"size": 0,
"query": {
    "filtered": {
        "filter": {
            "bool": {
                "must": [
                    {"range": {"timestamp": {"gte": "0", "lte": "now"}}}
                ]
            }
        }
    }
},
"aggs": {
    "before_and_after_today": {
        "date_range": {"field": "timestamp", "ranges":[{"to": "now-1d"}, {"from": "now-1d"}]},
        "aggs": {"time_period_unique_users": {"cardinality": {"field": "userId"}}}
    },
    "total_users": {
        "cardinality": {"field": "userId"}
    }
}

}

更新:precision_thresholdを非常に高い値として使用することで、今のところ機能しています。precision_threshold の最大値は 40,000 であるため、値が 40,000 を超えると問題になると思います。

4

0 に答える 0