Elasticsearch Aggregation возвращает неправильное число в поле объекта - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть это отображение:

...

[products_categories_id] => Array
(
    [type] => object
) 

...

С этим набором данных:

          "products_categories_id": [
        {
          "id": 164,
          "value": "Flight Case e Accessori - Supporti per Chitarra e Basso",
          "singular_value": "Flight Case e Accessorio - Supporto per Chitarra e Basso"
        },
        {
          "id": 443,
          "value": "Chitarre - Supporti per Chitarra",
          "singular_value": "Chitarra - Supporto per Chitarra"
        },
        {
          "id": 450,
          "value": "Bassi - Accessori per Basso - Supporti per Basso",
          "singular_value": "Basso - Accessorio per Basso - Supporto per Basso"
        }
      ]

И это итоговая сумма продукта:

"hits": {
  "total": 67,

Когда я агрегирую результат моего поиска, число агрегации не является правильным, потому что механизм возвращает номер моей категории и количество категорий, существующих в пределах объекта с моей категорией поиска (443)

Это раздел агрегации:

  "aggs": {

"filter_category": {
  "terms": {
    "script": "doc['products_categories_id.id'].value",
    "size": "20",
    "order": {
      "max_score": "desc"
    }
  },
  "aggs": {
    "max_score": {
      "max": {
        "script": "_score"
      }
    }
  }
}

}

И это результаты запроса:

  "aggregations": {
"filter_category": {
  "doc_count_error_upper_bound": 0,
  "sum_other_doc_count": 0,
  "buckets": [
    {
      "key": "443",
      "doc_count": 24,
      "max_score": {
        "value": 62.1923942565918
      }
    },
    {
      "key": "164",
      "doc_count": 40,
      "max_score": {
        "value": 50.844512939453125
      }
    },
    {
      "key": "65",
      "doc_count": 2,
      "max_score": {
        "value": 41.21534729003906
      }
    },
    {
      "key": "153",
      "doc_count": 1,
      "max_score": {
        "value": 30.362688064575195
      }
    }
  ]
}

}

Я ожидаю этого результата:

{
"key": "443",
"doc_count": 67,
"max_score": {
"value": 62.1923942565918
}

Кто-то может мне помочь, спасибо :) 1025 *

...