使用 Elasticsearch 我試圖從基于另一個欄位的欄位中獲取值的總和。
我有以下資料:
{
"id": "012345",
"rows": [
{
"id": 0101010,
"subtotal": 15.55,
"vat_percentage": 9.0,
"vat": 1.4
},
{
"id": 0101011,
"subtotal": 17.0,
"vat_percentage": 9.0,
"vat": 1.53
},
{
"id": 0101012,
"subtotal": 12.98,
"vat_percentage": 12.0,
"vat": 1.56
}
]
},
{
...
}
我想要的是基于 獲得值的總和,如下所示:vatvat_percentage
[
{
"vat_percentage": "9.0",
"vat_sum": 2.93
},
{
"vat_percentage": "12.0",
"vat_sum": 1.56
}
]
我試過的
我試圖進行value_count聚合,但它回傳一個不正確的值或一個null值:
{
"aggs": {
"vat_count": {
"value_count": {
"field": "admin_id"
}
}
}
}
我也嘗試使用嵌套查詢和聚合,但無法理解它。這是我嘗試過的:
{
"aggs": {
"total_vat": {
"nested": {
"path": "rows",
"query": {
"term": {
"rows.vat": "9.0"
}
}
}
}
}
}
這會引發以下錯誤:Unexpected token START_OBJECT in [total_vat].
我怎樣才能做到這一點?我對 Elasticsearch 的經驗很少,因此感謝您提供任何幫助。
uj5u.com熱心網友回復:
您需要使用nested、terms和sum聚合的組合。
嘗試使用此查詢:
{
"size": 0,
"aggs": {
"total_vat": {
"nested": {
"path": "rows"
},
"aggs": {
"unique_percentage": {
"terms": {
"field": "rows.vat_percentage"
},
"aggs": {
"sum_count": {
"sum": {
"field": "rows.vat"
}
}
}
}
}
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/497380.html
標籤:弹性搜索
上一篇:如何從變數中洗掉值
下一篇:在一個請求中發送多個JSON物件
