Elasticsearch count элементов в массиве, для свойства, имеющего значение - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть документ со структурой, подобной этой:

{
  "products": [
    {
      "variants": [
        {
          "type": "type_1"
        },
        {
          "type": "type_2"
        }
      ]
    }
  ]
}

«варианты» - это динамическое отображение.Я хочу посчитать варианты, имеющие определенный тип.Если я использую агрегацию терминов, то мне будут возвращены ключи сегментов всех типов и их соответствующее количество документов, но я хочу, чтобы типы, которые я передаю, присутствовали в ключах сегментов и их соответствующем количестве документов.

Или это любой другой способсчитать только варианты вместо doc и получать сегменты с типом в качестве ключа и значением в качестве их количества

Кто-нибудь может помочь мне с запросом?

1 Ответ

0 голосов
/ 14 декабря 2018

Я решил это с помощью скрипта.

{
  "aggs": {
    "agg_terms_types": {
      "terms": {
        "script": {
          "source": "params.selected_types",
          "params": {
            "selected_types": [
              "type_1"
            ]
          }
        }
      }
    }
  }
}
...