[英]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.