Elasticsearch 中的查询语句可以包括多个子句,其中两个最常用的子句是'should' 和 'must'。

'should' 子句表示可选项,即结果中包含这些条件的文档将获得更高的分数,但不是必需的。例如,如果我们正在搜索一个电影数据库,并且我们想要找到所有类型为'动作' 或 '科幻' 的电影,我们可以使用以下查询:

{
  "query": {
    "bool": {
      "should": [
        { "match": { "genre": "action" }},
        { "match": { "genre": "sci-fi" }}
      ]
    }
  }
}

这个查询将返回所有类型为'动作' 或 '科幻' 的电影,但是如果有一些电影同时属于这两种类型,它们将获得更高的分数。

'must' 子句表示必须匹配的条件,即只有符合这些条件的文档才会被返回。例如,如果我们想要找到所有评分高于 8 分的电影,我们可以使用以下查询:

{
  "query": {
    "bool": {
      "must": [
        { "range": { "rating": { "gte": 8 }}}
      ]
    }
  }
}

这个查询将只返回评分高于 8 分的电影,其他评分低于 8 分的电影将被过滤掉。

Elasticsearch 查询语句中的 'should' 和 'must' 区别详解

原文地址: https://www.cveoy.top/t/topic/k6sS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录