当前位置: 首页 > 知识库问答 >
问题:

Elasticsearch查询范围最后15分钟

颜均
2023-03-14

我试图创建一个简单的查询,以从索引日志存储中的文档返回匹配的deploymentId。

我能够搜索匹配查询,但当添加时间范围得到以下豁免。

错误:

“type”:“parsing\u exception”,
“reason”:“[匹配]格式错误的查询,应为[END\u OBJECT],但找到了[FIELD\u NAME]”,

我只想要匹配部署ID的最后15分钟记录。

GET /logstash-dev-2021.12.03/_search
{
  "query": {
    "match": {
      "deploymentId" : "64a5d214-368c-4760"
    }, 
    "range": {
      "time": {
        "gte": "now-15m",
        "lte": "now"
      }
    }
  }
}

共有1个答案

南宫炜
2023-03-14

我认为您不能在同一查询中使用范围和匹配,

您可以尝试使用布尔查询。

GET /logstash-dev-2021.12.03/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "time": {
              "gte": "now-15m",
              "lte": "now"
            }
          }
        }
      ],
      "must": [
        {
          "match": {
            "deploymentId" : "64a5d214-368c-4760"
          }
        }
      ]
    }
  }
}
 类似资料:
  • 可以对模型的查询和写入操作进行封装,例如: <?php namespace app\index\model; use think\Model; class User extends Model { public function scopeThinkphp($query) { $query->where('name','thinkphp')->field('i

  • 鉴于这些文件: 如何才能用它们的最小总价值来过滤它们的价格范围? 现在我的查询如下所示: 所以它从逻辑上返回文档1和2,因为它们的价格都在这个范围内,但我只想得到文档2,因为我希望过滤器逻辑只应用于最低价格。

  • 我正在努力为弹性搜索制定正确的API搜索调用,这将要求在过去1小时内获得我想要的ipv4address。 第一次尝试: {“error”:{“root\u cause”:[{“type”:“parsing\u exception”,“reason”:“未知键,用于[范围]中的START\u对象。”,“line”:10,“col”:12}],“type”:“parsing\u exception”,

  • 问题内容: 我想查询日期范围内的elasticsearch文档。我现在有两个选择,两个都适合我。已经测试了他们两个。1.范围查询2.范围过滤器 由于我现在的数据集很小,因此无法测试它们的性能。两者有什么区别?哪个会导致更快地检索文档和更快地响应? 问题答案: 查询和过滤器之间的主要区别在于评分。查询将返回每个文档具有相对排名得分的文档。过滤器没有。这种差异使过滤器更快,有两个原因。首先,它不会产生

  • 我想查询日期范围内的elasticsearch文档。我现在有两个选择,都很适合我。我已经测试了他们两个。1.范围查询2。距离滤波器 因为我现在有一个小数据集,所以无法测试它们的性能。这两者有什么区别?哪一种方法可以更快地检索文档和响应?

  • MySQL 提供了  BETWEEN AND 关键字,用来判断字段的数值是否在指定范围内。 BETWEEN AND 需要两个参数,即范围的起始值和终止值。如果字段值在指定的范围内,则这些记录被返回。如果不在指定范围内,则不会被返回。 使用 BETWEEN AND 的基本语法格式如下: [NOT] BETWEEN 取值1 AND 取值2 其中: NOT:可选参数,表示指定范围之外的值。如果字段值不满