为了提高使用多元索引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,获取多元索引中的所有属性列。
//表格存储Java SDK从5.6.1版本开始支持returnAllColumnsFromIndex参数。
ColumnsToGet columnsToGet = new ColumnsToGet();
columnsToGet.setReturnAllFromIndex(true);
searchRequest.setColumnsToGet(columnsToGet);
SearchResponse response = client.search(searchRequest);