使用聚合过滤弹出搜索中的OUT匹配文档

时间:2016-07-15 00:21:03

标签: elasticsearch

我正在尝试使用以下查询查询elasticsearch中的文档统计信息。问题是我试图忽略具有字段logger的某些值的文档,但我无法弄清楚如何。下面的查询会选择所有正确的文档集合中,但它不会排除具有不良值的文档。

非常欢迎任何建议。

{
  "query": {
    "bool": {
      "filter": {
        "bool": {
          "must_not": {
            "terms": {
              "logger": [
                "experimentsplitsegmentlogger_errors",
                "ExperimentLogger"
              ]
            }
          }
        }
      },
      "must_not": {
        "terms": {
          "logger": [
            "experimentsplitsegmentlogger_errors",
            "ExperimentLogger"
          ]
        }
      },
      "must": {
        "exists": {
          "field": "count"
        }
      }
    }
  },
  "aggs": {
    "keys": {
      "filter": {
        "bool": {
          "must_not": {
            "terms": {
              "logger": [
                "experimentsplitsegmentlogger_errors",
                "ExperimentLogger"
              ]
            }
          }
        }
      },
      "terms": {
        "field": "logger"
      },
      "aggs": {
        "hostnames": {
          "terms": {
            "field": "hostname"
          },
          "aggs": {
            "pids": {
              "terms": {
                "field": "pid"
              },
              "aggs": {
                "time_stats": {
                  "stats": {
                    "field": "timestamp"
                  }
                },
                "count_stats": {
                  "stats": {
                    "field": "count"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "size": 0
}

1 个答案:

答案 0 :(得分:1)

当我从同一级别的聚合中移除filterterms时,这应该对您有用。

{
  "query": {
    "bool": {
      "filter": {
          "not": {
            "terms": {
              "logger": [
                "experimentsplitsegmentlogger_errors",
                "ExperimentLogger"
              ]
            }
          }
      },
      "must": {
        "exists": {
          "field": "count"
        }
      }
    }
  },
  "aggs": {
    "keys": {
      "terms": {
        "field": "logger"
      }
    }
  },
  "size": 0
}