簡體   English   中英

elasticsearch 獲取唯一值,並且值計入多個字段

[英]elasticsearch get unique values, and the values count on multiple fields

我想從一個字段中獲取唯一值的列表,同時計算每個唯一值在兩個不同字段中出現的次數。

比方說,我有一個產品,可以同時買入賣出 我想查詢:在已售字段中出現的唯一值,以及,計算每個值在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": "<#>"
    }
  }

我應該如何形成我的查詢來實現這一點? 我想獲得已售的唯一值,並計算該值在已售和已購買字段中出現的次數。

嘗試:

  body = {
  "size": 0,
  "aggs": {
    "sold": {
      "terms": {
        "field": "product.sold.keyword",
        "size": 40000
      },
      "aggs": {
        "bought": {
          "terms": {
            "field": "product.bought.keyword",
            "size": 40000
          }
        }
      }
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM