minimum_should_match 参数

edit

minimum_should_match 参数

edit

参数 minimum_should_match 的可能值:

Type Example Description

整数

3

指示一个固定值,无论可选子句的数量如何。

负整数

-2

表示可选子句的总数减去此数量应为强制性。

百分比

75%

表示总可选子句数量的这一百分比是必要的。根据百分比计算出的数值向下取整并作为最小值使用。

负百分比

-25%

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

组合

3<90%

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

多种组合

2<-25% 9<-3

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

注意:

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

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

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