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

Tablestore:ワイルドカードクエリ

最終更新日:Dec 28, 2024

ワイルドカードクエリを実行する場合、クエリでアスタリスク (*) および疑問符 (?) ワイルドカード文字を使用してデータを検索できます。アスタリスク (*) は、検索語の前、後、または検索語にある任意の長さの文字列と一致します。疑問符 (?) は、特定の位置にある単一の文字と一致します。文字列はアスタリスク (*) または疑問符 (?) で始めることができます。たとえば、"table*e" 文字列を検索すると、"tablestore" が一致します。

説明

前提条件

パラメーター

パラメーター

説明

tableName

データテーブルの名前。

indexName

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

offset

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

limit

現在のクエリで返す最大行数。

queryType

クエリタイプ。このパラメーターを TableStore.QueryType.WILDCARD_QUERY に設定します。

fieldName

クエリする列の名前。

value

ワイルドカード文字を含む文字列。文字列は最大 32 文字までです。

getTotalCount

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

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

columnToGet

クエリ条件を満たす各行のすべての列を返すかどうかを指定します。このパラメーターには returnType と returnNames を設定できます。

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

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

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

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

次のサンプルコードは、Col_Keyword の値が "table*e" 文字列と一致する行を検索します。

/**
 * テーブルで Col_Keyword の値が "table*e" と一致する行を検索します。
 */
client.search({
    tableName: TABLE_NAME,
    indexName: INDEX_NAME,
    searchQuery: {
        offset: 0,
        limit: 10, // クエリ条件を満たす行数を返すだけで、特定のデータを返さないようにするには、limit を 0 に設定します。この方法では、Tablestore はテーブルからの特定のデータなしで、クエリ条件を満たす行数を返します。
        query: { // クエリタイプを TableStore.QueryType.WILDCARD_QUERY に設定します。
            queryType: TableStore.QueryType.WILDCARD_QUERY,
            query: {
                fieldName: "Col_Keyword",
                value: "table*e" // ワイルドカードクエリで 1 つ以上のワイルドカード文字を含む文字列を指定します。
            }
        },
        getTotalCount: true // クエリ条件を満たす行の総数を返すかどうかを指定します。このパラメーターのデフォルト値は false で、クエリ条件を満たす行の総数は返されません。
    },
    columnToGet: { // 返す列を指定します。パラメーターを RETURN_SPECIFIED に設定して指定された列を返すか、RETURN_ALL に設定してすべての列を返すか、RETURN_ALL_FROM_INDEX に設定して検索インデックス内のすべての列を返すか、RETURN_NONE に設定してプライマリキー列のみを返すことができます。
        returnType: TableStore.ColumnReturnType.RETURN_ALL
    }
}, function (err, data) {
    if (err) {
        console.log('error:', err);
        return;
    }
    console.log('success:', JSON.stringify(data, null, 2));
});

FAQ

参考資料