我要添加免責聲明,這將是顯著吸塵器只運行兩個單獨的罪名,並執行計算在客戶端這樣的:
GET /INDEX/_search
{
"size": 0,
"aggs": {
"types": {
"terms": {
"field": "type",
"size": 10
}
}
}
}
這將返回類似(除了使用您的區別鍵而不是在我的例子類型):
"aggregations": {
"types": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "Article",
"doc_count": 881
},
{
"key": "Page",
"doc_count": 301
}
]
}
利用這一點,把你獨特的計數和計算平均值。
通過以上所指出,這裏是哈克的方式,我能夠從放在一起(通過單個請求)this
GET /INDEX/_search
{
"size": 0,
"aggs": {
"parent_agg": {
"terms": {
"script": "'This approach is a weird hack'"
},
"aggs": {
"four_oh_fours": {
"filter": {
"term": {
"message": "404 not found"
}
},
"aggs": {
"count": {
"value_count": {
"field": "_index"
}
}
}
},
"five_hundreds": {
"filter": {
"term": {
"message": "500 error"
}
},
"aggs": {
"count": {
"value_count": {
"field": "_index"
}
}
}
},
"404s_over_500s": {
"bucket_script": {
"buckets_path": {
"four_oh_fours": "four_oh_fours.count",
"five_hundreds": "five_hundreds.count"
},
"script": "return params.four_oh_fours/(params.five_hundreds == 0 ? 1: params.five_hundreds)"
}
}
}
}
}
}
這應該返回基於腳本中計算的總價值。
如果有人可以提供一個方法,除了這兩個,我很樂意看到它。希望這可以幫助。
編輯 - 通過「表達式」類型完成相同的腳本而不是無痛(默認)。只需更換與以下上面的腳本值:
"script": {
"inline": "four_oh_fours/(five_hundreds == 0 ? 1 : five_hundreds)",
"lang": "expression"
}
更新腳本在這裏完成通過Lucene的同樣的事情表達式
我想我可以幫你,我只是想確認我理解正確的問:你需要一個計算結果,其中包含完全「404未找到」的不同文檔的數量除以包含完全「500錯誤」輸出的不同文檔的數量作爲浮點數? 假設對此,是否將消息字段映射爲「關鍵字」類型?如果不是,我需要對你想要的輸出做更多的說明。 – Miek
@MikeMichaels是的,你是正確的輸出,我想也消息字段映射爲「關鍵字」類型 – jonny