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

使用带有筛选器的match_all

奚高扬
2023-03-14

“{”error“:{”root_case“:[{”type“:”parsing_exception“,”reason“:”[match_all]格式错误的查询,预期[END_OBJECT]但找到[FIELD_NAME]“,”line“:”line“:1,”col“:26}”,“status”:400}“,”type“:”parsing_exception“,”reason“:”[match_all]格式错误的查询,预期[END_OBJECT]但找到[FIELD_NAME]

这是我正在构建并发送给elastic客户机的搜索参数的一个示例。

[
  "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
  ]
]

我似乎想不出这两个怎么用。有什么指示吗?谢谢你。

共有1个答案

施景同
2023-03-14

您需要将查询封装在bool查询中,如下所示:

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

只需将boolmust查询包装在match_all周围,它就可以工作了。

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

[
  "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
  ]
]
 类似资料:
  • 我创建了一个自定义筛选器,用于获取令牌,然后用与令牌相关的角色填充身份验证对象 然后,我将该过滤器添加到springsecuritycontext中,如下所示: 应用程序已经存在,我只是尝试添加Spring Security层。Spring Security版本为4.2.3。在尝试实现此功能的几天后,不会加载,因此不会筛选任何请求。请帮帮忙。

  • org.apache.hadoop.hbase.client.rpCretryingCaller@459C8C0a,java.io.ioException:java.io.ioException:java.lang.reflect.invocationTargetException at org.apache.hadoop.hbase.protobuf.to Filter(Protobufutil

  • 首先,我试图使选择所有复选框,如果我单击表头中的选择所有复选框,整个表行将选择并显示一个复选框反向消息,即我选择了多少复选框。这里的问题是,如果我单击select all复选框,反向消息不会显示楼上的表,即我选择了多少行。 其次,如果我从任何列中筛选任何数字,相同的数字将显示同一列中有多少行具有相同的数字。如果我选中了所有复选框,那么反向消息将显示我选中了多少行复选框。这里,问题是显示整个表行计数

  • 应用筛选器之前的示例使用者记录是(在值中查找GP_ID): 当我在kafkaListenerContainerFactory()中按如下方式设置recordFilterStrategy时: KafKareCordvo.ConvertByteBufferToLong正在将bytebuffer值转换为long值。 但是,当它被Kafka听众按以下方式消费时: 这将返回删除我筛选的字段值的记录:“gp_

  • 我想编写一个方法,在该方法中传递textfield(filterField)、来自tableview(data)和tableview(table)的数据,以便筛选所有表数据,每次在textfield中释放键时,都会检查键入的字符串是否包含在表的任何单元格中。 为此,我使用以下代码: 此代码仅在textfield中的字符串与表中任何单元格的值完全匹配时返回值。 我将需要它返回表中包含键入字符串的任何

  • 好吧,这一个对你们中的一个超级棒的弹性搜索专家来说可能不会太难。我得到了这个嵌套查询,我希望嵌套查询在一个非嵌套字段(状态)上进行过滤。我不知道把过滤器放在哪里。我试着把它放在一个查询中(如下),但没有给出正确的结果。你能帮我吗?