BoolQuery

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