BoolQuery 使用布尔逻辑将多个子查询组合为一个复合查询。每个子查询可以是任意查询类型,包括 BoolQuery 本身。
数据结构
message BoolQuery {
repeated Query must_queries = 1;
repeated Query must_not_queries = 2;
repeated Query filter_queries = 3;
repeated Query should_queries = 4;
optional int32 minimum_should_match = 5;
}
|
参数 |
类型 |
是否必选 |
描述 |
|
must_queries |
repeated Query |
否 |
AND — 行数据必须满足列表中所有子查询条件才算匹配。 |
|
must_not_queries |
repeated Query |
否 |
NOT — 行数据不能满足列表中任意子查询条件才算匹配。指定多个子查询时,只返回全部不满足的行,等价于 NOT(A OR B)。 |
|
filter_queries |
repeated Query |
否 |
AND(不计分) — 行数据必须满足列表中所有子查询条件才算匹配,与 must_queries 类似,但匹配结果不影响相关性分数。 |
|
should_queries |
repeated Query |
否 |
OR — 可选子查询条件列表。行数据至少满足 minimum_should_match 指定数量的条件才算匹配;满足条件越多,相关性分数越高。 |
|
minimum_should_match |
int32 |
否 |
should_queries 子查询条件的最小匹配个数。仅指定 should_queries 时,默认值为 1;同时指定 must_queries、must_not_queries 或 filter_queries 时,默认值为 0。 |
该文章对您有帮助吗?