minimum_should_match 参数

编辑

minimum_should_match 参数编辑

minimum_should_match 参数的可能值

类型 示例 描述

整数

3

表示一个固定值,与可选子句的数量无关。

负整数

-2

表示可选子句的总数减去此数字应为必填项。

百分比

75%

表示可选子句总数的此百分比是必需的。从百分比计算出的数字向下取整并用作最小值。

负百分比

-25%

表示可选子句总数的此百分比可以缺失。从百分比计算出的数字向下取整,然后从总数中减去以确定最小值。

组合

3<90%

一个正整数,后跟小于符号,再后跟前面提到的任何说明符,都是一个条件规范。它表示如果可选子句的数量等于(或小于)该整数,则所有子句都是必需的,但如果大于该整数,则该规范适用。在本例中:如果有 1 到 3 个子句,则所有子句都是必需的,但对于 4 个或更多子句,只需要 90%。

多个组合

2<-25% 9<-3

多个条件规范可以用空格分隔,每个规范仅对大于前一个规范的数字有效。在本例中:如果有 1 个或 2 个子句,则两者都是必需的,如果有 3-9 个子句,则除 25% 外的所有子句都是必需的,如果有多于 9 个子句,则除三个子句外,所有子句都是必需的。

注意

在处理百分比时,可以使用负值来在边缘情况下获得不同的行为。75% 和 -25% 在处理 4 个子句时含义相同,但在处理 5 个子句时,75% 表示需要 3 个,而 -25% 表示需要 4 个。

如果基于规范的计算确定不需要可选子句,则布尔查询的通常规则在搜索时仍然适用(不包含必需子句的布尔查询仍然必须至少匹配一个可选子句)

无论计算结果是多少,都不会使用大于可选子句数量的值或小于 1 的值。(即:无论计算结果的结果有多低或多高,所需匹配的最小数量永远不会小于 1 或大于子句的数量。)