elasticsearch 等价于弹性搜索中的布尔或,elasticsearch,elasticsearch" /> elasticsearch 等价于弹性搜索中的布尔或,elasticsearch,elasticsearch" />

elasticsearch 等价于弹性搜索中的布尔或

elasticsearch 等价于弹性搜索中的布尔或,elasticsearch,elasticsearch,我目前搜索我的数据,查找一个术语的精确匹配项,如下所示: { "query": { "bool": { "must": [ { "term": { "term_a": "xxxxx" } } ] } } } 但是,我希望能够搜索多个术语,并获得至少匹配一个术语的所有文档。因此,在SQL语言中,术语a='xxxxx'或术语b='yyyyy'。我怎样才能做

我目前搜索我的数据,查找一个术语的精确匹配项,如下所示:

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

但是,我希望能够搜索多个术语,并获得至少匹配一个术语的所有文档。因此,在SQL语言中,术语a='xxxxx'或术语b='yyyyy'。我怎样才能做到这一点?

然后您可以对每个
术语使用
bool
should
语句:

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

如果要在同一字段中搜索多个术语,则可以使用。

然后可以对每个
术语使用
bool
should
语句

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

如果您想在同一字段中搜索多个术语,那么您可以使用。

谢谢,这就成功了!如果你不介意的话,如果我有一些额外的条款,这些条款总是必须存在呢?也就是说,
(术语a='xxxxx'或术语b='yyyyy')和术语c='zzzzz'和术语d='wwwwww'
?你把它们放在必须的语句中。谢谢,这就成功了!如果你不介意的话,如果我有一些额外的条款,这些条款总是必须存在呢?也就是说,
(术语a='xxxxx'或术语b='yyyyy')和术语c='zzzzz'和术语d='wwwww'
?你把它们放在必须的语句中。