ElasticSearch:即使一个字段不匹配,也显示多搜索的部分匹配

ElasticSearch: Show partial match for multi search even if one field does not match

我目前正在尝试对名字、姓氏和出生日期进行多项搜索查询。我希望结果显示 first、last 和 dob 的完全匹配,但如果名字和姓氏匹配但存在不同的出生日期,则也显示结果。

截至目前,我的代码只有 returns 如果所有三个字段都完全匹配,则结果

GET /account/data/_search
{
  "query": {
    "match": {
      "first": {
        "query": "Chris"
      }
    }
  },
  "query": {
    "match": {
      "last": {
        "query": "Johnson"
      }
    }
  },
  "query": {
    "match": {
      "dob": {
        "query": "10-10-1990"
      }
    }
  }
}

这可以用简单的方法解决bool query

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "first": "TEXT"
          }
        },
        {
          "match": {
            "last": "TEXT"
          }
        }
      ],
      "should": [
        {
          "match": {
            "dob": "TEXT"
          }
        }
      ]
    }
  }
}