我想通過映射ES檔案中的某個欄位來進行自定義聚合。
我嘗試利用術語聚合腳本。有數以百計的映射,因此我必須將所有的映射放到一個HashMap中:
GET /myindex/_search
{
"查詢"。{
"match_all": {}
},
"aggs": {
"myagg": {
"條款": {
"腳本": {
"來源": "Map m = new HashMap(); m.put('a', 'A'); m.put('bb', 'CC'); ... return m.get(doc['foo.keyword'].value)",
"lang": "無痛"
}
}
}
},
"大小": 0
}
這很難看,即使我使用了存盤腳本,性能也很差。我不知道為什么在我的腳本中執行要花費這么多時間。
我還嘗試了腳本化的指標聚合。與普通的術語聚合相比,它要好一些,但仍然很慢。
有什么方法可以加速映射嗎?(除了運行時欄位,因為我的 ES 版本不支持它)
uj5u.com熱心網友回復:
如果你有運行時欄位,你可以嘗試一下,但很可能它們也不會很快。
你最好的選擇是上面ExplodZe所說的,在攝取程序中先做這些作業,以使查詢時間更快
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/329580.html
標籤:
上一篇:Elasticsearch崩潰了
