Elasticsearch Wrong doc_count в отношении агрегации детей - PullRequest
0 голосов
/ 07 ноября 2019

Для моего индекса соединения родитель-потомок (не вложенный тип)

Я обнаружил, что запрос агрегации дочерних элементов , приведенный ниже, выдаст неправильный doc_count .

hits = 64714
vs
children agg doc_count = 6568272 + 52343.

, которыйозначает фильтр не соответствует дочерней агрегации .

Почему? Как это решить? Спасибо!

обсудить в сообществе

=============================================================================

запрос:

POST /test_tsdb_alias/_search?routing=ms_nginxgas3_count&track_total_hits=true
{
  "query": {
    "bool": {
      "filter": [
        {
          "has_parent": {
            "parent_type": "t",
            "query": {
              "bool": {
                "filter": [
                  {
                    "term": {
                      "metric": "ms_nginxgas3_count"
                    }
                  }
                ]
              }
            }
          }
        },
        {
          "range": {
            "ts": {
              "gte": "2019-10-30T13:00:00+0800",
              "lte": "2019-10-30T13:30:00+0800"
            }
          }
        }
      ]
    }
  },
  "aggs": {
    "ff": {
      "aggs": {
        "to_p": {
          "parent": {
            "type": "p"
          },
          "aggs": {
            "tag": {
              "terms": {
                "field": "tag._type"
              },
              "aggs": {
                "to_c": {
                  "children": {
                    "type": "p"
                  }
                }
              }
            }
          }
        }
      },
      "filters": {
        "filters": {
          "ts": {
            "range": {
              "ts": {
                "gte": "2019-10-30T13:00:00+0800",
                "lte": "2019-10-30T13:30:00+0800"
              }
            }
          }
        }
      }
    }
  },
  "size": 0
}

=============================================================================

ответ:

{
  "took" : 1048,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 64714,
      "relation" : "eq"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "ff" : {
      "buckets" : {
        "ts" : {
          "doc_count" : 64714,
          "to_p" : {
            "doc_count" : 1714,
            "tag" : {
              "doc_count_error_upper_bound" : 0,
              "sum_other_doc_count" : 0,
              "buckets" : [
                {
                  "key" : "formal",
                  "doc_count" : 1624,
                  "to_c" : {
                    "doc_count" : 6568272
                  }
                },
                {
                  "key" : "test",
                  "doc_count" : 90,
                  "to_c" : {
                    "doc_count" : 52343
                  }
                }
              ]
            }
          }
        }
      }
    }
  }
}
...