ElasticSearch 查询 DSL 组合术语和通配符

ElasticSearch Query DSL Combine Terms and Wildcard

我必须区分单独运行良好的查询:

{"wildcard":{"city":"*Beach*"}} {"terms":{"state":["Florida","Georgia"]}}

但事实证明,试图将它们组合成一个查询是一项相当大的挑战。

我原以为只要简单地做{{"wildcard":{"city":"*Beach*"}},{"terms":{"state":["Florida","Georgia"]}}}就可以了,但事实并非如此。然后我尝试使用数组和 bool 查询等进行几次不同的迭代。有人能指出我正确的方向吗?

Bool query应该是正确的方法。

以下是您的用例示例:

{
  "query": {
    "bool": {
      "must": [
        {
          "wildcard": { "city": "*Beach*" }
        },
        {
          "terms": {
            "state": [ "Florida", "Georgia" ]
          }
        }
      ]
    }
  }
}

如果没有结果,则表示没有符合这两个条件的条目。