elasticsearch查询有问题-[range]查询格式错误,应为[end\u object],但找到[field\u name]

fdbelqdn  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(359)

我不知道下面的问题是什么。

GET website/_search
{
  "query": {
    "bool": { 
      "filter": [
        {
          "range": {
            "@timestamp": {
            "gte": "now-1d/d",
            "lt": "now/d"
            }
          },
          "match": {
            "aspnet-request-url.keyword": "abc.com/Default.aspx"
          }
        }
      ] 
    }
  }
}

两者 range 以及 match 独立工作很好。
根据文档,当合并多个查询时,我们应该使用 must , filter , must-not 低于 bool 查询。
它仍然在给予 [range] malformed query, expected [END_OBJECT] but found [FIELD_NAME] .
感谢您的帮助。

6ioyuze2

6ioyuze21#

[range]查询格式错误,应为[end\u object],但找到[field\u name]
从上面的错误可以明显看出,查询的格式不正确。请参阅本文以了解有关查询和筛选器上下文的结构的更多信息。
如果缺少一些括号,请尝试下面的搜索查询

{
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "@timestamp": {
              "gte": "now-1d/d",
              "lt": "now/d"
            }
          }
        },
        {                          <-- note this
          "match": {
            "aspnet-request-url.keyword": "abc.com/Default.aspx"
          }
        }
      ]
    }
  }
}

相关问题