為了提高使用多元索引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);