elasticsearch 向嵌套聚合筛选器Elasticsearch添加多个筛选器,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 向嵌套聚合筛选器Elasticsearch添加多个筛选器,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch 向嵌套聚合筛选器Elasticsearch添加多个筛选器

elasticsearch 向嵌套聚合筛选器Elasticsearch添加多个筛选器,elasticsearch,kibana,elasticsearch,Kibana,因此,我想为聚合部分的“内部”部分的聚合过滤器添加更多的过滤器。我需要添加的另外两个过滤器位于查询部分。我能够让这段代码正常工作,它只需要将第二个和第三个嵌套过滤器从第一部分添加到聚合区域中,我目前只使用“givingMatch.db_type”术语进行过滤 以下是只需要添加附加过滤器的当前代码: GET /testserver/_search { "query": { "bool": { "filter": [ {

因此,我想为聚合部分的“内部”部分的聚合过滤器添加更多的过滤器。我需要添加的另外两个过滤器位于查询部分。我能够让这段代码正常工作,它只需要将第二个和第三个嵌套过滤器从第一部分添加到聚合区域中,我目前只使用“givingMatch.db_type”术语进行过滤

以下是只需要添加附加过滤器的当前代码:

    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中使用多个过滤器。

它确实节省了我的几个小时。非常感谢。它确实节省了我的几个小时。非常感谢。