全部產品
Search
文件中心

Tablestore:如何將多元索引Search介面查詢資料的limit提高到1000

更新時間:Aug 31, 2024

為了提高使用多元索引Search介面單次查詢的返回結果數,當查詢資料時只查詢多元索引中的資料沒有反查資料表時,則limit限制自適應提高到1000,如果查詢資料時需要反查資料表,則limit限制為100。本文介紹將多元索引Search介面查詢資料的limit提高到1000的方法。

操作步驟

通過多元索引的Search介面查詢資料時,您可以使用ColumnsToGet參數設定需要返回哪些列,如果設定的列均在多元索引中,則limit會自動提升到1000。您可以通過在ColumnsToGet中指定多元索引中存在的列,或者指定ReturnAllColumnsFromIndex為true來實現。

樣本

此處以Java SDK為例介紹如何設定ColumnsToGet參數,其他語言的SDK實作類別似,只需修改SearchRequest中的ColumnsToGet參數即可。

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(new MatchAllQuery());
searchQuery.setLimit(1000);

SearchRequest searchRequest = new SearchRequest(tableName, indexName, searchQuery);

//方式一:在ColumnsToGet參數中設定columns參數為多元索引中的列,擷取多元索引中的指定屬性列。。
ColumnsToGet columnsToGet = new ColumnsToGet();
columnsToGet.setReturnAll(false);
//設定為多元索引中的列名。
columnsToGet.setColumns(Arrays.asList("field_1", "field_2", "field_3"));  
searchRequest.setColumnsToGet(columnsToGet);

//方式二:在ColumnsToGet中設定returnAllColumnsFromIndex參數為true,擷取多元索引中的所有屬性列。
//Table StoreJava SDK從5.6.1版本開始支援returnAllColumnsFromIndex參數。
ColumnsToGet columnsToGet = new ColumnsToGet();
columnsToGet.setReturnAllFromIndex(true);
searchRequest.setColumnsToGet(columnsToGet);

SearchResponse response = client.search(searchRequest);