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。 |