相当于布尔值或在ElasticSearch中

时间:2017-06-16 13:52:30

标签: elasticsearch

我目前在一个词中搜索我的数据以获得完全匹配:

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "term_a": "xxxxx"
          }
        }
      ]
    }
  }
}

但是,我希望能够搜索多个术语并获得至少匹配一个的所有文档。所以在SQL中说term_a = 'xxxxx' or term_b = 'yyyyy'。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

然后,您可以为每个bool使用should term个语句:

"bool": {
  "should": [
    {
      "term": {
        "term_a": "xxxxx"
      }
    },
    {
      "term": {
        "term_b": "yyyyy"
      }
    }
  ]
}

如果您想在相同字段中搜索多个字词,则可以使用terms query