検索インデックス機能のSearch操作を呼び出してデータをクエリする場合、検索インデックスに返したいすべての列が含まれている場合、limitパラメータの最大値は自動的に1000に増加します。この場合、limitパラメータを設定して、レスポンスで返される行数を増やすことができます。検索インデックスに返したいすべての列が含まれていない場合は、データテーブルからデータをクエリする必要があります。この場合、limitパラメータの最大値は100です。このトピックでは、検索インデックス機能のSearch操作を呼び出してデータをクエリする際に、limitパラメータの値を1000に増やす方法について説明します。
方法
検索インデックス機能のSearch操作を呼び出してデータをクエリする場合、ColumnsToGetパラメータを使用して、返したい列を指定できます。指定した列が検索インデックスに含まれている場合、limitパラメータの値は自動的に1000に増加します。レスポンスの行数を増やすには、ColumnsToGetパラメータを設定して、検索インデックスに含まれる列を返したい列として指定するか、ReturnAllColumnsFromIndexパラメータをtrueに設定して、返したい列が検索インデックスに含まれるようにしてから、limitパラメータの値を増やします。
既存の検索インデックスに返したいすべての列が含まれておらず、limitパラメータの値を自動的に1000に増やしたい場合は、検索インデックスを作成する際に返したいすべての列を検索インデックスに追加するか、既存の検索インデックスのスキーマを動的に変更して、返したいすべての列を検索インデックスに追加できます。詳細については、検索インデックスの作成と検索インデックスのスキーマの動的な変更を参照してください。
例
次のサンプルコードは、Tablestore SDK for JavaのSearchRequestでColumnsToGetパラメータを設定することにより、limitパラメータの値を1000に増やす方法の例を示しています。limitパラメータの値を増やす方法は、他のプログラミング言語のTablestore SDKでも同様です。
SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(new MatchAllQuery());
searchQuery.setLimit(1000);
SearchRequest searchRequest = new SearchRequest(tableName, indexName, searchQuery);
// 方法 1: ColumnsToGetパラメータのcolumnsパラメータを、検索インデックスに含まれる列に設定して、検索インデックス内の特定の属性列を返します。
ColumnsToGet columnsToGet = new ColumnsToGet();
columnsToGet.setReturnAll(false);
// columnsパラメータを検索インデックス内の列名に設定します。
columnsToGet.setColumns(Arrays.asList("field_1", "field_2", "field_3"));
searchRequest.setColumnsToGet(columnsToGet);
// 方法 2: ColumnsToGetのreturnAllColumnsFromIndexパラメータをtrueに設定して、検索インデックス内のすべての属性列を返します。
// Tablestore SDK for Java V5.6.1以降では、returnAllColumnsFromIndexパラメータがサポートされています。
ColumnsToGet columnsToGet = new ColumnsToGet();
columnsToGet.setReturnAllFromIndex(true);
searchRequest.setColumnsToGet(columnsToGet);
SearchResponse response = client.search(searchRequest);