すべてのプロダクト
Search
ドキュメントセンター

Tablestore:重複除外 (個別)

最終更新日:Dec 28, 2024

クエリの結果に特定の種類の大量のデータが含まれている場合、重複除外 (個別) 機能を使用して、指定された列に基づいて結果セットを重複除外できます。特定の種類のデータは、結果の種類の多様性を確保するために、クエリ結果に一度だけ表示されます。

前提条件

使用上の注意

  • 重複除外 (個別) 機能を使用する場合、offset パラメーターと limit パラメーターを指定することによってのみページネーションを実行できます。

  • 結果セットを集計し、同時に重複除外する場合、結果セットは重複除外される前に集計されます。

  • クエリの結果を重複除外する場合、返される結果の総数は、offset パラメーターと limit パラメーターの値の合計によって決まります。最大 100,000 件の結果を返すことができます。

  • レスポンスの行の総数は、重複除外 (個別) 機能を使用する前にクエリ条件を満たす行の数を示します。結果セットが重複除外された後、個別の値の総数をクエリすることはできません。

パラメーター

パラメーター

説明

query

クエリの種類。このパラメーターは任意のクエリの種類に設定できます。

collapse

fieldName パラメーターで指定されたフィールドに基づいて結果セットを重複除外します。

fieldName: 結果セットの重複除外の基準となるフィールドの名前。値が INTEGER、FLOATING-POINT、または KEYWORD 型のフィールドのみがサポートされています。値が ARRAY 型のフィールドはサポートされていません。

offset

現在のクエリが開始される位置。

limit

現在のクエリで返される行の最大数。

行の特定のデータをクエリせずに、クエリ条件を満たす行の数のみをクエリするには、limit パラメーターを 0 に設定します。

getTotalCount

クエリ条件を満たす行の総数を返すかどうかを指定します。このパラメーターのデフォルト値は false で、クエリ条件を満たす行の総数は返されません。

このパラメーターを true に設定すると、クエリのパフォーマンスが低下します。

tableName

データテーブルの名前。

indexName

検索インデックスの名前。

columnsToGet

クエリ条件を満たす各行のすべての列を返すかどうかを指定します。

  • returnType を TableStore.ColumnReturnType.RETURN_SPECIFIED に設定した場合、returnNames を設定して返す列を指定する必要があります。

  • returnType パラメーターを TableStore.ColumnReturnType.RETURN_ALL に設定すると、すべての列が返されます。

  • returnType パラメーターを TableStore.ColumnReturnType.RETURN_ALL_FROM_INDEX に設定すると、検索インデックス内のすべての列が返されます。

  • returnType パラメーターを TableStore.ColumnReturnType.RETURN_NONE に設定すると、プライマリキー列のみが返されます。

次のサンプルコードは、Match All クエリを使用してテーブル内の行の総数をクエリし、col_keyword 列の値に基づいて結果セットを重複除外する方法の例を示しています。

let searchQuery = {
    offset: 0,
    limit: 100,
    query: {
        queryType: TableStore.QueryType.MATCH_ALL_QUERY,
    },
    collapse: {
        fieldName: "col_keyword",
    },
    getTotalCount: false,
};
let params = {
    tableName: tableName,
    indexName: indexName,
    searchQuery: searchQuery,
    columnToGet: { // 返す列を指定します。RETURN_SPECIFIED を設定して指定した列を返すか、RETURN_ALL を設定してすべての列を返すか、RETURN_ALL_FROM_INDEX を設定して検索インデックス内のすべての列を返すか、RETURN_NONE を設定してプライマリキー列のみを返すことができます。
        returnType: TableStore.ColumnReturnType.RETURN_ALL_FROM_INDEX
    },
    timeoutMs: 30000,
}
client.search(params, function (err, data) {
    if (err) {
        console.log('search error:', err.toString());
    } else {
        console.log('search success:', data);
    }
});

FAQ

参考資料