elasticsearch 分組求和

2021-09-08 20:28:41 字數 1115 閱讀 4172

我使用的是elasticsearch6.4.3, resthighlevelclient獲取客戶端,直接上**吧

1、action

//字段型別為long

map map2 = searchclient.searchgrouplong(sourcebuilder,searchrequest, aggname, aggfield);

iterator iter2 = map2.entryset().iterator(); // 獲得map的iterator

while (iter2.hasnext())

}catch(exception ex)

2、service

/*** 分組求和

* @param searchbuilder 查詢條件

* @param searchrequest 索引資訊

* @param aggname 分組後名稱

* @param aggfield  要分組的字段 long型別

* @return

*/public map searchgrouplong(searchsourcebuilder searchbuilder,searchrequest searchrequest,string aggname,string aggfield)

return map;

} catch (ioexception e)

return null;

} /**

* 分組求和

* @param searchbuilder 查詢條件

* @param searchrequest 索引資訊

* @param aggname 分組後名稱

* @param aggfield  要分組的字段 string型別

* @return

*/public map searchgroupstring(searchsourcebuilder searchbuilder,searchrequest searchrequest,string aggname,string aggfield)

return map;

} catch (ioexception e)

return null;

Elasticsearch 實現分組統計

之前有個查詢es分組求和的需求,類似關係型資料庫 select a b sum c from table group by a,b 當時用dsl查詢語句實現 這邊記錄下 get my index my type search aggs aggs 說明 1.環境居於es 5.4.3 版本,查詢語句在k...

elasticsearch分組排序取top N

比如有一張聯絡歷史表,裡面有使用者uid,號number,使用者所屬國家country,通話時長talktime幾個主要字段。現在的需求是要獲取平均通話時長最長的top 20個國家。先過濾掉一些不需要的資料,然後根據country分桶,在桶內求平均通話時長。最後根據每個桶的平均通話時長取top 20...

elasticsearch 7 聚合統計 分組聚合

原文 get index type search 返回值表示,15,20 區間內的值有1個,20,25 區間內的值有0個,25,30 區間內的值有1個,30,35 區間內的值有1個。1 直方圖篩選規則 舉個例子,有乙個price欄位,這個字段描述了商品的 現在想每隔5就建立乙個桶,統計每隔區間都有多...