我使用的是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就建立乙個桶,統計每隔區間都有多...