弹性搜索结合 match 和 should

Elastic search combine match and should

我想创建一个可以使用匹配的查询,并且该匹配应该只考虑另一个字段值为 null 或某个特定值的行。

所以像这样:

where field1 like 'string' and field2 is null or field2 = 123

在 JS 客户端中可以吗?

您可以使用 bool/must/should along with the exists and wildcard query

的组合
{
  "query": {
    "bool": {
      "must": [
        {
          "wildcard": {
            "field1": "string*"
          }
        },
        {
          "bool": {
            "should": [
              {
                "term": {
                  "field2": 123
                }
              },
              {
                "bool": {
                  "must_not": {
                    "exists": {
                      "field": "field2"
                    }
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}