BoolQuery

更新时间:
复制为 MD 格式

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_queriesmust_not_queriesfilter_queries 时,默认值为 0