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分支总数。