格式错误的 bool 查询 elasticsearch - Elasticsearch 观察器

malformed bool query elasticsearch - Elasticsearch watcher

您好,我在开发工具中使用了以下弹性搜索查询。我的 bool 查询不断收到错误,但查看 @timestamp 字段并尝试仅检索一天的数据似乎是正确的。

    "input": {
      "search": {
        "request": {
          "indices": [
            "<iovation-*>"
          ],
          "body": {
            "size": 0,
            "query": {
              "bool": {
                "must": {
                  "range": {
                    "@timestamp": {
                      "gte": "now-1d"
                    }
                  }
                }
              },
            "aggs": {
              "percentiles": {
                "percentiles": {
                  "field": "logstash.load.duration",
                  "percents": 95,
                  "keyed": false
                }
              },
              "dates": {
                "date_histogram": {
                  "field": "@timestamp",
                  "calendar_interval": "5m",
                  "min_doc_count": 1
                }
              }
            }
          }
        }
      }
    }
  },

感谢任何帮助!

您的查询中几乎没有错误

  1. 每当聚合与查询部分一起使用时,结构为

    { “询问”: {}, “聚合”:{} }

您在查询部分末尾缺少一个 }

  1. Calendar Intervals 不接受 2d、2m 等多个数量

  2. 如果你有一个固定的间隔,那么你可以参考fixed_interval参数

将您的查询修改为

{
  "size": 0,
  "query": {
    "bool": {
      "must": {
        "range": {
          "@timestamp": {
            "gte": "now-1d"
          }
        }
      }
    }                               // note this
  },
  "aggs": {
    "percentiles": {
      "percentiles": {
        "field": "logstash.load.duration",
        "percents": 95,
        "keyed": false
      }
    },
    "dates": {
      "date_histogram": {
        "field": "timestamp",
        "fixed_interval": "5m",           // note this
        "min_doc_count": 1
      }
    }
  }
}