must 用于必须匹配且参与相关性评分的条件,filter 用于必须满足的真/假条件,should 用于偏好,除非明确要求它必须匹配。
搜索已发布的鞋并偏好一个品牌
假设 title 是 text,而 status 和 brand 是 keyword。向商品搜索端点发送以下请求体:
json
must 用于必须匹配且参与相关性评分的条件,filter 用于必须满足的真/假条件,should 用于偏好,除非明确要求它必须匹配。
假设 title 是 text,而 status 和 brand 是 keyword。向商品搜索端点发送以下请求体:
一个包含详细解答的 IT 面试题库——从初级到高级。
捐赠example 品牌的已发布鞋还满足偏好条件,可能因此提高评分。偏好会影响排名,但不保证在所有评分情况下,该品牌始终排在第一。
如果至少一个偏好必须匹配,在 bool 内设置 minimum_should_match: 1。否则,当存在 must 或 filter 时,should 默认可选。只有 should 而没有 must 和 filter 的 bool 查询,默认要求匹配一个 should。Filter 不参与评分;有资格缓存与某次执行实际使用缓存是两回事。
官方文档.