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

时间:2017-04-11 01:43:49

标签: elasticsearch lucene kibana

我必须完全独立运行的不同查询:

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

但是尝试将它们组合成一个查询证明是相当挑战。

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

1 个答案:

答案 0 :(得分:3)

Bool query应该是正确的方法。

以下是您的用例示例:

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

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