Tous les produits
Search
Centre de documentation

Tablestore:Requête par termes

Dernière mise à jour :Aug 08, 2026

Une requête par termes fonctionne comme une requête par terme, mais permet de spécifier plusieurs mots-clés pour rechercher les lignes de données correspondant à au moins l'un d'entre eux. Ce mécanisme équivaut à l'opérateur IN en SQL.

Prérequis

Paramètres

Paramètre

Description

TableName

Nom de la table de données.

IndexName

Nom de l'index de recherche.

Query

Type de requête. Définissez le type sur TermsQuery.

FieldName

Nom du champ à interroger.

Terms

Mots-clés utilisés pour faire correspondre les valeurs de champ lors d'une requête par termes.

Une ligne de données est renvoyée si au moins l'un des mots-clés correspond à la valeur du champ.

Limit

Nombre maximal de lignes à renvoyer.

Pour obtenir uniquement le nombre de lignes répondant aux conditions sans renvoyer les données, définissez Limit sur 0.

ColumnsToGet

Indique s'il faut renvoyer toutes les colonnes des lignes répondant aux conditions. Spécifiez les paramètres ReturnAll et Columns.

Par défaut, ReturnAll est défini sur false : toutes les colonnes ne sont pas renvoyées. Si ReturnAll est défini sur false, utilisez le paramètre Columns pour spécifier les colonnes à renvoyer. À défaut, seules les colonnes de clé primaire sont renvoyées.

Si vous définissez ReturnAll sur true, toutes les colonnes des lignes correspondantes sont renvoyées.

Exemples

L'exemple de code suivant montre comment interroger les lignes dont la valeur de la colonne Col_Keyword correspond exactement à « hangzhou » ou « tablestore ».

/**
 * Query the rows in which the value of the Col_Keyword column exactly matches "hangzhou" or "tablestore" in the table. 
 */
func TermsQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
    searchRequest := &tablestore.SearchRequest{}
    searchRequest.SetTableName(tableName)
    searchRequest.SetIndexName(indexName)
    query := &search.TermsQuery{}   // Set the query type to TermsQuery. 
    query.FieldName = "Col_Keyword" // Set the field used to match the query conditions. 
    terms := make([]interface{}, 0)
    terms = append(terms, "hangzhou")
    terms = append(terms, "tablestore")
    query.Terms = terms // Set the keywords used in the query to match the column values. 
    searchQuery := search.NewSearchQuery()
    searchQuery.SetQuery(query)
    searchQuery.SetLimit(100)
    searchRequest.SetSearchQuery(searchQuery)
    // Return all columns in the rows that meet the query conditions. 
    searchRequest.SetColumnsToGet(&tablestore.ColumnsToGet{
        ReturnAll: true,
    })
    searchResponse, err := client.Search(searchRequest)
    if err != nil {
        fmt.Printf("%#v", err)
        return
    }
    fmt.Println("IsAllSuccess: ", searchResponse.IsAllSuccess) // Check whether all rows that meet the query conditions are returned. 
    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

Références