[英]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.