字段上的聚合和 return elasticsearch 中的总和
Aggregation on a field and return the sum in elasticsearch
我正在努力寻找在过滤另一个字段后对一个字段进行聚合的方法。但是,Elastic 搜索文档并不容易理解。
假设我的映射:
[
{
a:'a1'
b:'b1'
c:120
d:12
},
{
a:'a2'
b:'b1'
c:170
d:15
}
{
a:'a3'
b:'b2'
c:128
d:18
}
{
a:'a4'
b:'b1'
c:158
d:5
}
]
所需聚合:
Return the sum of field "c", by selecting the docs with "b" where b=b1 and d is less than 13
这不是我的要求,但答案有助于我理解文档。
试试这个:
POST index/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"b": "b1"
}
},
{
"range": {
"d": {
"lt": 13
}
}
}
]
}
},
"aggs": {
"total": {
"sum": {
"field": "c"
}
}
}
}
我正在努力寻找在过滤另一个字段后对一个字段进行聚合的方法。但是,Elastic 搜索文档并不容易理解。
假设我的映射:
[
{
a:'a1'
b:'b1'
c:120
d:12
},
{
a:'a2'
b:'b1'
c:170
d:15
}
{
a:'a3'
b:'b2'
c:128
d:18
}
{
a:'a4'
b:'b1'
c:158
d:5
}
]
所需聚合:
Return the sum of field "c", by selecting the docs with "b" where b=b1 and d is less than 13
这不是我的要求,但答案有助于我理解文档。
试试这个:
POST index/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"b": "b1"
}
},
{
"range": {
"d": {
"lt": 13
}
}
}
]
}
},
"aggs": {
"total": {
"sum": {
"field": "c"
}
}
}
}