Несовпадение данных в визуализации и базе данных Elastic

Всем привет,
Есть визуализация в виде таблицы, но данные в ней отличаются от эластика. Например, для игрока с id 750 в таблице 6 записей с 2мя устройствами:


Однако это невозможно, поскольку id игрока однозначно привязан к устройству: 1 id = 1 устройство. В эластике же с данным id ассоциируется лишь одно устройство, что больше похоже на правду:

Подобна проблема встречается и на других id: например, к id 744 в таблице привязано 5 устройств:

... но в эластике мы видим только одно устройство у данного id:

С чем это может быть связано? Недавно обновили кибану с 7.3 до 7.4, так что может ли проблема быть связана с версией 7.4 или же это может быть вызвано ошибками в обновлении кибаны с нашей стороны?

Ниже прикрепляю скрипт запроса визуализации-таблицы:

{
  "aggs": {
    "2": {
      "terms": {
        "field": "device.keyword",
        "order": {
          "1": "desc"
        },
        "missing": "__missing__",
        "size": 5000
      },
      "aggs": {
        "1": {
          "avg": {
            "field": "stage_duration"
          }
        },
        "3": {
          "histogram": {
            "field": "player_id",
            "interval": 6,
            "min_doc_count": 1
          },
          "aggs": {
            "7": {
              "histogram": {
                "field": "tutorial_id",
                "interval": 5,
                "min_doc_count": 1
              },
              "aggs": {
                "6": {
                  "histogram": {
                    "field": "stage_id",
                    "interval": 1,
                    "min_doc_count": 0
                  },
                  "aggs": {
                    "4": {
                      "terms": {
                        "field": "completed",
                        "order": {
                          "1": "desc"
                        },
                        "size": 5
                      },
                      "aggs": {
                        "1": {
                          "avg": {
                            "field": "stage_duration"
                          }
                        },
                        "5": {
                          "terms": {
                            "field": "created_at",
                            "order": {
                              "1": "desc"
                            },
                            "size": 50
                          },
                          "aggs": {
                            "1": {
                              "avg": {
                                "field": "stage_duration"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "size": 0,
  "_source": {
    "excludes": []
  },
  "stored_fields": [
    "*"
  ],
  "script_fields": {},
  "docvalue_fields": [
    {
      "field": "created_at",
      "format": "date_time"
    },
    {
      "field": "player_created_at",
      "format": "date_time"
    }
  ],
  "query": {
    "bool": {
      "must": [],
      "filter": [
        {
          "bool": {
            "filter": [
              {
                "bool": {
                  "should": [
                    {
                      "match": {
                        "is_tester": false
                      }
                    }
                  ],
                  "minimum_should_match": 1
                }
              },
              {
                "bool": {
                  "should": [
                    {
                      "match": {
                        "build": "0.3.0.1650"
                      }
                    }
                  ],
                  "minimum_should_match": 1
                }
              }
            ]
          }
        },
        {
          "range": {
            "stage_id": {
              "gte": 16,
              "lt": 19
            }
          }
        },
        {
          "range": {
            "created_at": {
              "format": "strict_date_optional_time",
              "gte": "2019-12-10T22:00:00.000Z",
              "lte": "2019-12-13T21:30:00.000Z"
            }
          }
        }
      ],
      "should": [],
      "must_not": []
    }
  }
}

А что возвращает этот запрос если послать его в elasticsearch?

Возвращает корректные данные (по одному девайсу на каждый player_id).
Однако кол-во совпадений = 61 (как в визуализации-таблице с некорректными значениями)

Продолжение дискуссии в Wrong data aggregation in a table

Вы не могли бы пояснить разницу между "aggregated table" и "individual documents"? Почему в визуализации-таблице нет соответствия 1:1, а если применить тот же запрос в поиске Discover или в Dev Tools, то такое соответствие появляется?

Дело было в разделении по "player_id": Histogram надо было поменять на Terms

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.