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

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

最終更新日:Dec 28, 2024

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

説明

前提条件

パラメータ

パラメータ

説明

TableName

データテーブルの名前。

IndexName

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

query

クエリのタイプ。クエリタイプを WildcardQuery に設定します。

FieldName

クエリする列の名前。

Value

ワイルドカード文字を含む文字列。文字列は32文字を超えることはできません。

ColumnsToGet

一致した各行のすべての列を返すかどうかを指定します。

デフォルトでは、ReturnAll の値は false で、すべての列が返されないことを指定します。 ReturnAll が false に設定されている場合、ColumnsToGet を使用して返す列を指定できます。返す列を指定しない場合は、プライマリキー列のみが返されます。

ReturnAll を true に設定すると、すべての列が返されます。

サンプルコード

次のサンプルコードは、Col_Keyword 列の値が「hang*u」と一致する行をテーブルで検索する方法の例を示しています。

/**
 * Col_Keyword 列の値が "hang*u" と一致する行をテーブルで検索します。
 */
func WildcardQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
    searchRequest := &tablestore.SearchRequest{}
    searchRequest.SetTableName(tableName)
    searchRequest.SetIndexName(indexName)
    query := &search.WildcardQuery{} // クエリタイプを WildcardQuery に設定します。
    query.FieldName = "Col_Keyword"
    query.Value = "hang*u"
    searchQuery := search.NewSearchQuery()
    searchQuery.SetQuery(query)
    searchRequest.SetSearchQuery(searchQuery)
    // クエリ条件を満たす行のすべての列を返します。
    searchRequest.SetColumnsToGet(&tablestore.ColumnsToGet{
        ReturnAll:true,
    })
    searchResponse, err := client.Search(searchRequest)
    if err != nil {
        fmt.Printf("%#v", err)
        return
    }
    fmt.Println("IsAllSuccess: ", searchResponse.IsAllSuccess) // クエリ条件を満たすすべての行が返されたかどうかを確認します。
    fmt.Println("TotalCount: ", searchResponse.TotalCount) // 返された行数ではなく、一致した行の総数を表示するように指定します。
    fmt.Println("RowCount: ", len(searchResponse.Rows))
    for _, row := range searchResponse.Rows {
        jsonBody, err := json.Marshal(row)
        if err != nil {
            panic(err)
        }
        fmt.Println("Row: ", string(jsonBody))
    }
}

FAQ

関連情報