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