minimum_should_match 参数
编辑minimum_should_match
参数
编辑minimum_should_match
参数的可能值
类型 | 示例 | 描述 |
---|---|---|
整数 |
|
表示一个固定值,与可选子句的数量无关。 |
负整数 |
|
表示可选子句的总数减去此数字应该成为强制性的。 |
百分比 |
|
表示可选子句总数的此百分比是必要的。 从百分比计算出的数字向下取整,并用作最小值。 |
负百分比 |
|
表示可选子句总数的此百分比可以缺失。 从百分比计算出的数字向下取整,然后从总数中减去以确定最小值。 |
组合 |
|
一个正整数,后跟小于号,后跟任何先前提到的说明符是一个条件规范。 它表示如果可选子句的数量等于(或小于)该整数,则所有子句都是必需的,但如果它大于该整数,则应用该规范。 在此示例中:如果有 1 到 3 个子句,则它们都是必需的,但对于 4 个或更多子句,仅需要 90%。 |
多重组合 |
|
多个条件规范可以用空格分隔,每个条件规范仅对大于前一个的数字有效。 在此示例中:如果有 1 或 2 个子句,则两者都是必需的,如果有 3-9 个子句,则除了 25% 之外的所有子句都是必需的,如果有 9 个以上的子句,则除了 3 个之外的所有子句都是必需的。 |
注意
在处理百分比时,可以使用负值来获得边缘情况下不同的行为。当处理 4 个子句时,75% 和 -25% 表示相同的含义,但当处理 5 个子句时,75% 表示需要 3 个子句,而 -25% 表示需要 4 个子句。
如果基于规范的计算确定不需要任何可选子句,则有关 BooleanQuery 的通常规则在搜索时仍然适用(一个不包含任何必需子句的 BooleanQuery 仍然必须匹配至少一个可选子句)
无论计算得出什么数字,都不会使用大于可选子句数量的值或小于 1 的值。(即:无论计算结果如何低或高,所需匹配的最小数量永远不会低于 1 或高于子句的数量。)