asticsearch получает уникальные значения, а значения учитываются в нескольких полях - PullRequest
0 голосов
/ 01 марта 2020

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

Допустим, у меня есть продукт это может быть как куплено , так и продано . Я хочу запросить: Уникальные значения, которые появились в поле продано , AND, подсчитайте, сколько раз каждое значение появилось в полях sold и bought.

Ближайшее, к которому я пришел, это агрегация terms. Я получаю оба значения, но в двух разных сегментах:

{
  "aggs": {
    "sold": {
      "terms":{
        "field": "productname.sold.keyword",
        "size": 1000
      }
    },
    "bought": {
      "terms":{
        "field": "product.bought.keyword",
        "size": 1000
      }
    }
  }
}

Но это дает мне результат в двух отдельных сегментах. Мой идеальный вывод такой:

  "aggregations": {
    "product_stat": {
      "key": "<product>"
      "sold": "<#>"
      "bought": "<#>"
    }
  }

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

1 Ответ

1 голос
/ 02 марта 2020

Попробуйте:

  body = {
  "size": 0,
  "aggs": {
    "sold": {
      "terms": {
        "field": "product.sold.keyword",
        "size": 40000
      },
      "aggs": {
        "bought": {
          "terms": {
            "field": "product.bought.keyword",
            "size": 40000
          }
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...