[英]Elastic search aggregation and range
我們希望聚集一些價值。 例如,假設我們正在索引在組織中注冊的用戶。
我們想讓注冊用戶數像這樣分裂:
預期我們需要存儲0到1000個用戶(gmail,fb,yahoo-3個應用程序)。以及1001到2000個用戶(自己的應用程序,其他應用程序-2個應用程序)。
我們如何在彈性搜索中實現這一目標? 有什么建議么 ?
謝謝
假設您正在索引用戶對象,如下所示:
POST users/user
{
"login":"user1",
"organization":"fb"
}
您正在嘗試通過用戶的organization
價值來匯總他們。 為此,您必須使用terms
匯總。
您的查詢將如下所示:
POST users/_search?search_type=count
{
"aggs": {
"by_organization": {
"terms": {
"field": "organization"
}
}
}
}
注意:此處的search_type = count響應時間較短,因為不會返回結果匹配(請參閱此處 )。
您的搜索響應將類似於:
{
(...)
"aggregations": {
"by_organization": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "app",
"doc_count": 4
},
{
"key": "fb",
"doc_count": 3
},
{
"key": "gmail",
"doc_count": 2
}
]
}
}
}
您可以看到與每個組織值相對應的存儲桶。
意識到:
terms
聚合”的size
參數) not_analyzed
才能匯總原始價值(而不是通過分析獲得的條件) 我強烈邀請您閱讀有關分析的更多信息,以及terms
匯總文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.