如何使用多匹配查询来获得一半的搜索词?

How to use multi-match query to get half search terms?

我想查找以 man 开头或包含短语 man 的名称。但是我也想查询不同的索引。

因此它应该 return 所有包含术语 man 的字段,例如 hoffman 姓氏,或任何包含术语的字段。

我怎样才能做到这一点?

    "query": {
        "multi_match": {
            "query": "man",
            "fields": [
                "name",
                "last_name",
                "email"
            ]
        }
    }
}
{
    "query": {
        "multi_match": {
            "query": "man",
            "fields": [
                "billing.name",
                "billing.last_name",
                "billing.email"
            ]
        }
    }
}

如果要跨多个索引进行搜索,则可以使用_index field,跨多个字段搜索可以使用query_String,而不是多匹配查询。

GET /_search

{
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
            "_index": [
              "index-1",
              "index-2"
            ]
          }
        },
        {
          "query_string": {
            "query": "*man*"
          }
        }
      ]
    }
  }
}