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 个以上的子句,则除了 3 个之外的所有子句都是必需的。

注意

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

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

无论计算得出什么数字,都不会使用大于可选子句数量的值或小于 1 的值。(即:无论计算结果如何低或高,所需匹配的最小数量永远不会低于 1 或高于子句的数量。)