加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹰潭站长网 (https://www.0701zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP-使用match_all和过滤器

发布时间:2023-02-02 09:00:50 所属栏目:PHP教程 来源:互联网
导读: @H_301_0@,允许用户查询数据集并应用过滤器.他们还可以应用过滤器而无需查询字符串.为此,我尝试将match_all与过滤器配合使用,但出现以下错误
@H_301_0@
@H_301_0@“{“error”:{“root_cau

@H_301_0@,允许用户查询数据集并应用过滤器.他们还可以应用过滤器而无需查询字符串.为此,我尝试将match_all与过滤器配合使用,但出现以下错误

@H_301_0@

@H_301_0@“{“error”:{“root_cause”:[{“type”:”parsing_exception”,”reason”:”[match_all]

malformed query, expected [END_OBJECT] but found

[FIELD_NAME]”,”line”:1,”col”:26}],”type”:”parsing_exception”,”reason”:”[match_all]

malformed query,expected [END_OBJECT] but found

[FIELD_NAME]”PHP过滤器,”line”:1,”col”:26},”status”:400}”,

@H_301_0@这是我正在构建并发送给弹性客户端的搜索参数的示例.

@H_301_0@

[
  "type" => "events"
  "index" => "events"
  "body" => [
    "query" => [
      "match_all" => {}
      "bool" => [
        "filter" => [
          "range" => [
            "start_date.date" => [
              "gte" => "01/05/2019"
              "lte" => "05/2019"
              "format" => "dd/MM/yyyy||MM/yyyy"
            ]
          ]
        ]
      ]
    ]
    "from" => 0
    "size" => 30
  ]
]

@H_301_0@我似乎无法弄清楚如何同时使用它们.有指针吗?谢谢.

解决方法:

@H_301_0@您将需要将查询包装在布尔查询中,如下所示:

@H_301_0@

"query": {
    "bool" : {
        "must" : {
        "match_all": {}
        },
        "filter": {
        "range" : { /* your filter here*/ }
        }
    }
}

@H_301_0@只需将布尔值和必须查询周围的match_all包起来,它就可以工作.

@H_301_0@我不知道确切的PHP语法,但是应该是这样的:

@H_301_0@

[
  "type" => "events"
  "index" => "events"
  "body" => [
    "query" => [
      "bool" => [
        "must" => [ "match_all" => {}]
        "filter" => [
          "range" => [
            "start_date.date" => [
              "gte" => "01/05/2019"
              "lte" => "05/2019"
              "format" => "dd/MM/yyyy||MM/yyyy"
            ]
          ]
        ]
      ]
    ]
    "from" => 0
    "size" => 30
  ]
]

@H_301_0@作为参考,请参阅docs Elasticsearch Reference [7.0] ? Query DSL ? Compound queries ? Bool Query,它包含一个与match_all结合过滤器的示例.

(编辑:鹰潭站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!