弹性搜索必须vs应该vs排除过滤器



谁能详细说明弹性搜索中的这三个过滤器,即必须,应该,排除过滤器。在弹性搜索中,bool查询的这些部分属于复合查询吗?

must为逻辑与运算符,should为逻辑或运算符

这些子句用于在创建DSL查询

时组合多个条件(使用bool查询)。所有这些查询都包含在bool查询中。例如

{
"query": {
"bool": {
"must": {},
"should": {},
"filter": {}
}
}
}

更新1:

should(对相关度评分有贡献)这意味着当你使用should子句时,搜索结果将基于许多因素返回,如文档数、字段长度、频率、总词频率等。

而在filter的情况下(不贡献相关性评分),这意味着它只是给出一个是/否的答案,即文档是否匹配。(不考虑mustshould条款所考虑的其他因素)

最新更新