Как выполнить агрегацию терминов путем объединения двух массивов? - PullRequest
0 голосов
/ 27 января 2019

У меня есть сопоставление Elasticsearch, которое выглядит следующим образом:

"product": {
  "properties": {
    "attributes": {
      "type": "keyword",
      "normalizer": "lowercase"
    },
    "skus": {
      "type": "nested",
      "properties": {
        "attributes": {
          "type": "keyword",
          "normalizer": "lowercase"
        }
      }
    }
  }
}

Я пытаюсь объединить термины как для поля attributes, так и для поля skus.attributes, объединяя их, но у меня нетне понял как.Оба поля являются простыми строковыми массивами.Это насколько я получил:

{
  "query": {
    "match_all": {}
  },
  "aggregations": {
      "unique_attrs": {
         "terms": {
            "field": "attributes"
         }
      }
   }
}

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

1 Ответ

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

Как уже упоминалось на форумах Elasticsearch: https://discuss.elastic.co/t/combining-nested-and-non-nested-aggregations/82583, он рекомендует объединять их, используя отображение copy_to при индексации данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...