minimum_should_match参数

时间:2025-04-15 08:07:39

        minimum_should_match参数用于设置返回的文档必须匹配的最少should分支数。参数值合法格式如下:

类型 示例 说明
正整数 3 无论有多少should分支,必须匹配指定数量的should分支。
负整数 -2 最多可以有多少个should分支不匹配。
正百分数 70% 必须匹配should分支总数的指定百分比数量的should分支,分支数向下取整。例如总共有5个should分支,则至少匹配3个。
负百分数 -20% 最多可以有should分支总数的指定百分比数量的should分支不匹配,分支数向下取整。例如总共有7个should分支,则最多有1个should分支不匹配。
组合 2<70% 一个正整数,然后是<,然后是上述的任意类型的说明符以此做为条件说明符。当should分支总数小于等于指定的数量时,则必须匹配所有should分支,当should分支总数大于指定的数量时,则应用指定的说明符。如示例中当should分支总数小于等于2时,则必须匹配所有分支,当should分支总数大于2时,则至少需要匹配2个should分支。
多组合 2<70% 6<-1 多个条件说明符用空格分隔,每个条件说明符只有在should分支数大于指定数量时有效。如示例中,当should分支总数小于等于2时,则必须全部匹配,当should分支总数大于2小于等于6时,则至少匹配70%的should分支,当should分支总数大于6时,则最多有1个should分支不匹配。

        如果基于说明符计算后不需要匹配should分支,那么布尔查询的通用规则:当布尔查询中没有must分支时必须匹配至少一个should分支,在检索时仍适用。无论计算的结果有多大或多小,需要匹配的should分支数永远不会小于1或大于should分支总数。