Агрегированные результаты показывают меньше элементов, чем doc_count? - PullRequest
0 голосов
/ 17 января 2019

У меня есть запрос ElasticSearch, который агрегирует результат в определенном поле, называемом _aggregate. Теперь у меня такая странная ситуация с учетом этого запроса:

  "size": 100,
  "aggregations": {
    "results": {
      "terms": {
        "field": "_aggregate",
        "size": 1000,
        "order": {
          "_count": "desc"
        }
      },
      "aggregations": {
        "bundled": {
          "top_hits": {
            "sort": [
              {
                "_weight": "asc"
              }
            ]
          }
        }
      }
    }
  },
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "_aggregate": "5713618784853"
          }
        }
      ]
    }
  }
}

Когда я выполняю этот поиск, он возвращает 8 совпадений (как и ожидалось). Однако, когда я смотрю на агрегированные результаты, я вижу doc_count, равный 8 (пока все хорошо), но он возвращает только 3 попадания.

Увеличение размера поля _aggregate не оказывает никакого влияния.

Кто-нибудь знает, как это возможно, или что может быть причиной этого?

1 Ответ

0 голосов
/ 17 января 2019

Это связано с тем, что агрегация метрик top_hits по умолчанию возвращает 3 совпадения. Вы можете переопределить это

  "aggregations": {
    "bundled": {
      "top_hits": {
        "size": 10,                   <--- add this
        "sort": [
          {
            "_weight": "asc"
          }
        ]
      }
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...