elasticsearch,Filter,elasticsearch" /> elasticsearch,Filter,elasticsearch" />

Filter 指定了多个字段值的查询

Filter 指定了多个字段值的查询,filter,elasticsearch,Filter,elasticsearch,我正在尝试使用指定的多个字段执行elasticsearch查询。下面是一些伪代码,希望能说明我的意图: "query" : { "query_string" : { "query" : "william" } }, "filter" : { "missing" : { "field" : "membership_expires_on" } }, "filter" : { "missing" : { "field" : "gender" } }, "filter" : { "ter

我正在尝试使用指定的多个字段执行elasticsearch查询。下面是一些伪代码,希望能说明我的意图:

"query" : {
  "query_string" : { "query" : "william" }
},
"filter" : {
  "missing" : { "field" : "membership_expires_on" }
},
"filter" : {
  "missing" : { "field" : "gender" }
},
"filter" : {
  "terms" : { "status" : "p"}
},
"filter" : {
  "terms" : { "unit_id" : "4"}
}
我试图将所有这些过滤器放在一起,但从中我不知道如何将这些特定的过滤器放在一个查询中。任何帮助都将不胜感激

更新:以下是我目前掌握的信息:

{
  "from": 0,
  "query": {
    "filtered": {
      "filter": {
        "bool": {
          "must": [
            {
              "missing": {
                "field": "membership_expires_on"
              }
            },
            {
              "term": {
                "status": "p"
              }
            },
            {
              "missing": {
                "field": "gender"
              }
            },
            {
              "term": {
                "unit": "4"
              }
            }
          ]
        }
      },
      "query": {
        "query_string": {
          "query": "william"
        }
      }
    }
  },
  "size": 10
}
但这没有结果,所以我做错了什么。我是否以非法的方式挥舞着装有阵列的布尔过滤器


更新2:我已经确认上面的JSON确实是一个有效的查询,因此我的数据/索引可能有问题。这将是另一天的一个问题:-)

看一下。这应该会有帮助。

如果您已经定义了一个文档和映射,您是否可以在问题中添加一个文档和映射?elasticsearch是否会接受必须子句中的数组?或者它只能在一个should子句中?据我所知,您的评论是肯定的,您可以在一个must子句中添加多个查询。