should 和 must
在 Elasticsearch(ES)中,should 和 must 是布尔查询(Boolean Query)中常用的两个子句。
- should 子句:should 表示一个或多个条件之一满足即可匹配文档。它类似于逻辑上的 OR 操作,用于构建可选项或者提升匹配文档的相关性评分。当至少一个 should 子句匹配时,文档将被认为是匹配的。
- must 子句:must 表示所有条件都必须满足才能匹配文档。它类似于逻辑上的 AND 操作,用于构建必须满足的查询限制。只有当所有的 must 子句都匹配时,文档才会被认为是匹配的。
需要注意的是,should 和 must 子句可以同时在一个布尔查询中使用,以构建更复杂的查询逻辑。
以下是一个示例,演示了如何在布尔查询中使用 should 和 must 子句:
{
"query": {
"bool": {
"must": [
{
"term": {
"field1": "value1"