弹性搜索多字段通配符布尔查询

米通

当前使用 bool 查询搜索两个输入词的组合或字段“名称”上的输入词之一。如何使用通配符搜索多个字段?

POST inventory_dev/_search{"from":0,"query":{"bool":{"must":[{"bool":{"should":[{"term":{"Name":{"value":"dove"}}},{"term":{"Name":{"value":"3.75oz"}}},{"bool":{"must":[{"wildcard":{"Name":{"value":"*dove*"}}},{"wildcard":{"Name":{"value":"*3.75oz*"}}}]}}]}}]}},"size":10,"sort":[{"_score":{"order":"desc"}}]}
编码器

您可以使用query_string代替通配符查询来搜索多个字段

{
  "from": 0,
  "query": {
    "bool": {
      "must": [
        {
          "bool": {
            "should": [
              {
                "term": {
                  "Name": {
                    "value": "dove"
                  }
                }
              },
              {
                "term": {
                  "Name": {
                    "value": "3.75oz"
                  }
                }
              },
              {
                "bool": {
                  "must": [
                    {
                      "query_string": {
                        "query": "*dove*",
                        "fields": [
                          "field1",
                          "Name"
                        ]
                      }
                    },
                    {
                      "query_string": {
                        "query": "*3.75oz*",
                        "fields": [
                          "field1",
                          "Name"
                        ]
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  },
  "size": 10,
  "sort": [
    {
      "_score": {
        "order": "desc"
      }
    }
  ]
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章