BoolQuery查询条件包含一个或者多个子查询条件,根据子查询条件来判断一行数据是否满足查询条件。每个子查询条件可以是任意一种Query类型,包括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 | 否 | 多个Query列表,行数据必须满足所有的子查询条件才算匹配,等价于And操作符。 |
must_not_queries | repeated Query | 否 | 多个Query列表,行数据必须不能满足任何的子查询条件才算匹配,等价于Not操作符。 |
filter_queries | repeated Query | 否 | 多个Query列表,行数据必须满足所有的子filter才算匹配,filter类似于query,区别是filter不会根据满足的filter_queries个数进行相关性算分。 |
should_queries | repeated Query | 否 | 多个Query列表,可以满足,也可以不满足,等价于Or操作符。 一行数据应该至少满足should_queries子查询条件的最小匹配个数才算匹配。 如果满足的should_queries子查询条件个数越多,则整体的相关性分数更高。 |
minimum_should_match | int32 | 否 | should_queries子查询条件的最小匹配个数。当同级没有其他Query,只有should_queries时,默认值为1;当同级已有其他Query,例如must_queries、must_not_queries和filter_queries时,默认值为0。 |