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