全部產品
Search
文件中心

:全匹配查詢

更新時間:Jul 03, 2024

全匹配查詢(MatchAllQuery)可以匹配所有行,常用於查詢表中資料總行數,或者隨機返回幾條資料。

前提條件

參數

參數

說明

query

設定查詢類型為MatchAllQuery。

tableName

資料表名稱。

indexName

多元索引名稱。

limit

本次查詢需要返回的最大數量。

如果要隨機擷取幾行資料,請設定limit為正整數。

如果只為了擷取行數,無需具體資料,可以設定limit=0,即不返回任意一行資料。

columnsToGet

是否返回所有列,包含returnAll和columns設定。

returnAll預設為false,表示不返回所有列,此時可以通過columns指定返回的列;如果未通過columns指定返回的列,則只返回主鍵列。

當設定returnAll為true時,表示返回所有列。

getTotalCount

是否返回匹配的總行數,預設為false,表示不返回。

返回匹配的總行數會影響查詢效能。

樣本

以下樣本用於通過MatchAllQuery查詢表中資料的總行數。

/**
 * 通過MatchAllQuery查詢表中資料的總行數。
 * @param client
 */
private static void matchAllQuery(SyncClient client) {
    SearchQuery searchQuery = new SearchQuery();

    /**
    * 設定查詢類型為MatchAllQuery。
    */
    searchQuery.setQuery(new MatchAllQuery()); 

    /**
     * MatchAllQuery結果中的TotalCount可以表示表中資料的總行數。
     * 如果要隨機擷取幾行資料,請設定limit為正整數。
     * 如果只為了擷取行數,但不需要具體資料,可以設定limit=0,即不返回任意一行資料。
     */
    searchQuery.setLimit(0);
    SearchRequest searchRequest = new SearchRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>", searchQuery);

    /**
    * 設定返回匹配的總行數。
    */ 
    searchQuery.setGetTotalCount(true);
    SearchResponse resp = client.search(searchRequest);
    /**
     * 判斷返回的結果是否完整,當isAllSuccess為false時,表示可能存在部分節點查詢失敗,返回的是部分資料。
     */
    if (!resp.isAllSuccess()) {
        System.out.println("NotAllSuccess!");
    }
    System.out.println("IsAllSuccess: " + resp.isAllSuccess());
    System.out.println("TotalCount: " + resp.getTotalCount()); //列印總行數。
    System.out.println(resp.getRequestId());
}
            

常見問題

如何查看錶的總行數

相關文檔