elasticsearch 向嵌套聚合筛选器Elasticsearch添加多个筛选器
因此,我想为聚合部分的“内部”部分的聚合过滤器添加更多的过滤器。我需要添加的另外两个过滤器位于查询部分。我能够让这段代码正常工作,它只需要将第二个和第三个嵌套过滤器从第一部分添加到聚合区域中,我目前只使用“givingMatch.db_type”术语进行过滤 以下是只需要添加附加过滤器的当前代码:elasticsearch 向嵌套聚合筛选器Elasticsearch添加多个筛选器,elasticsearch,kibana,elasticsearch,Kibana,因此,我想为聚合部分的“内部”部分的聚合过滤器添加更多的过滤器。我需要添加的另外两个过滤器位于查询部分。我能够让这段代码正常工作,它只需要将第二个和第三个嵌套过滤器从第一部分添加到聚合区域中,我目前只使用“givingMatch.db_type”术语进行过滤 以下是只需要添加附加过滤器的当前代码: GET /testserver/_search { "query": { "bool": { "filter": [ {
GET /testserver/_search
{
"query": {
"bool": {
"filter": [
{
"nested": {
"path": "givingMatch",
"query": {
"bool": {
"filter": {
"terms": {
"givingMatch.db_type": [
"FECmatch",
"StateMatch"
]
}
}
}
}
}
},
{
"nested": {
"path": "givingMatch",
"query": {
"bool": {
"filter": {
"range": {
"givingMatch.Status": {
"from": 0,
"to": 8
}
}
}
}
}
}
},
{
"nested": {
"path": "givingMatch",
"query": {
"bool": {
"filter": {
"range": {
"givingMatch.QualityScore": {
"from": 17
}
}
}
}
}
}
}
]
}
},
"aggs": {
"categories": {
"nested": {
"path": "givingMatch"
},
"aggs": {
"inner": {
"filter": {
"terms": {
"givingMatch.db_type":["FECmatch","StateMatch"]
}
},
"aggs":{
"org_category": {
"terms": {
"field": "givingMatch.org_category",
"size": 1000
},
"aggs": {
"total": {
"sum":{
"field": "givingMatch.low_gift"
}
}
}
}
}
}
}
}
},
"size": 0
}
给出这些结果:
...."aggregations": {
"categories": {
"doc_count": 93084,
"inner": {
"doc_count": 65492,
"org_category": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "DEM",
"doc_count": 28829,
"total": {
"value": 29859163
}
},
{
"key": "REP",
"doc_count": 21561,
"total": {
"value": 69962305
}
},...
希望这能为其他人节省几个小时。要添加多个过滤器,聚合部分将变为:
GET materielelectrique_search_alias/product/_search?explain=false
{
"aggs": {
"categories": {
"nested": {
"path": "givingMatch"
},
"aggs": {
"inner": {
"filter": {
"bool": {
"must": [
{
"terms": {
"givingMatch.db_type": [
"FECmatch",
"StateMatch"
]
}
},
{
"range": {
"givingMatch.QualityScore": {
"from": 17
}
}
},
{
"range": {
"givingMatch.Status": {
"from": 0,
"to": 8
}
}
}
]
}
},
"aggs": {
"org_category": {
"terms": {
"field": "givingMatch.org_category",
"size": 1000
},
"aggs": {
"total": {
"sum": {
"field": "givingMatch.low_gift"
}
}
}
}
}
}
}
}
}
}
这允许在嵌套的AGG中使用多个过滤器。希望这能为其他人节省几个小时。要添加多个过滤器,聚合部分将变为:
GET materielelectrique_search_alias/product/_search?explain=false
{
"aggs": {
"categories": {
"nested": {
"path": "givingMatch"
},
"aggs": {
"inner": {
"filter": {
"bool": {
"must": [
{
"terms": {
"givingMatch.db_type": [
"FECmatch",
"StateMatch"
]
}
},
{
"range": {
"givingMatch.QualityScore": {
"from": 17
}
}
},
{
"range": {
"givingMatch.Status": {
"from": 0,
"to": 8
}
}
}
]
}
},
"aggs": {
"org_category": {
"terms": {
"field": "givingMatch.org_category",
"size": 1000
},
"aggs": {
"total": {
"sum": {
"field": "givingMatch.low_gift"
}
}
}
}
}
}
}
}
}
}
这允许在嵌套的AGG中使用多个过滤器。它确实节省了我的几个小时。非常感谢。它确实节省了我的几个小时。非常感谢。