如何在URI搜索中搜索多个字段

安德烈亚斯·塞伦沃尔(Andreas Selenwall)

我想使用URI搜索(q =)在ElasticSearch中执行AND操作。我该怎么做?

如果我有这样的文档:[{“ name”:“ Test 1”,“ pub”:“ 2”},{“ name”:“ Test 2”,“ pub”:“ 1”},{“ name”: “ A”,“ pub”:“ 1”}]

我想查询包含名称包含“ Test”且pub等于“ 1”的文档。我怎么做?

谢谢!

假设您的文档如下所示:

{
    "my_field": [
        { "name":"Test 1", "pub":"2"}, 
        { "name":"Test 2", "pub":"1"}, 
        { "name":"A", "pub":"1"}
    ]
}

并且的映射my_field类型nested与此类似:

{
  "mappings": {
    "doc_type": {
      "properties": {
        "my_field": {
          "type": "nested",
          "properties": {
            "name": { "type": "string" },
            "pub": {"type": "integer" }
          }
        }
      }
    }
  }
}

然后,您可以通过以下nested查询查询索引并获取所需的文档

POST /_search
{
  "query": {
    "nested": {
      "path": "my_field",
      "query": {
        "bool": {
          "filter": [
            {
              "match": {
                "name": "Test"
              }
            },
            {
              "match": {
                "pub": 1
              }
            }
          ]
        }
      }
    }
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章