Tous les produits
Search
Centre de documentation

Tablestore:Requête Exists

Dernière mise à jour :Aug 08, 2026

Une requête Exists, également appelée requête NULL ou requête de valeur NULL, permet de déterminer si une colonne existe pour une ligne donnée dans des données clairsemées. Par exemple, vous pouvez rechercher les lignes dont la valeur de la colonne address n'est pas vide.

Remarque
  • Pour interroger une colonne Nested, utilisez une requête imbriquée (nested query).

  • Pour vérifier si une colonne contient des valeurs vides, combinez ExistsQuery avec mustNotQueries au sein d'une BoolQuery.

  • Le système considère qu'une colonne n'existe pas si l'une des conditions suivantes est remplie. Prenons l'exemple de la colonne city.

    • Le type de la colonne city dans l'index de recherche est un type de base, tel que keyword. Si une ligne de la table de données ne contient pas la colonne city, l'index de recherche considère que cette colonne n'existe pas.

    • Le type de la colonne city dans l'index de recherche est un type de base, tel que keyword. Si la valeur de la colonne city est un tableau vide dans la table de données (« city » = « [] »), l'index de recherche considère que cette colonne n'existe pas.

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 ce paramètre sur ExistsQuery.

FieldName

Nom de la colonne à interroger.

Exemple

L'exemple de code suivant montre comment interroger les lignes dont la colonne spécifiée n'est pas vide :

func ExitsQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
    searchRequest := &tablestore.SearchRequest{}
    searchRequest.SetTableName(tableName)
    searchRequest.SetIndexName(indexName)
    query := &search.ExitsQuery{} // Set the query type to ExitsQuery. 
    query.FieldName = "city" // Specify the name of the column that you want to query. 
    searchQuery := search.NewSearchQuery()
    searchQuery.SetQuery(query)
    searchQuery.SetGetTotalCount(true)
    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("TotalCount: ", searchResponse.TotalCount) // Specify that the total number of rows that meet the query conditions instead of the number of returned rows is displayed. 
    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

  • Lorsque vous utilisez un index de recherche pour interroger des données, vous pouvez recourir aux méthodes de requête suivantes : requête term, requête terms, requête match all, requête match, requête match phrase, requête prefix, requête range, requête wildcard, requête geo, requête Boolean, requête KNN vector, requête nested et requête exists. Ces méthodes vous permettent d'interroger les données selon plusieurs dimensions, en fonction de vos besoins métier.

    Vous pouvez trier ou paginer les lignes correspondant aux conditions de requête grâce aux fonctionnalités de tri et de pagination. Pour plus d'informations, consultez la section Tri et pagination.

    La fonctionnalité de collapse (distinct) permet de regrouper l'ensemble des résultats sur la base d'une colonne spécifique. Ainsi, les données du type spécifié n'apparaissent qu'une seule fois dans les résultats de la requête. Pour plus d'informations, consultez la section Collapse (déduplication).

  • Pour analyser les données d'une table, utilisez la fonctionnalité d'agrégation de l'opération Search ou exécutez des instructions SQL. Par exemple, vous pouvez obtenir les valeurs minimale et maximale, la somme ainsi que le nombre total de lignes. Pour plus d'informations, consultez les sections Agrégation et Requête SQL.

  • Pour récupérer toutes les lignes répondant aux conditions de requête sans tri, appelez les opérations ParallelScan et ComputeSplits afin d'utiliser la fonctionnalité de balayage parallèle. Pour plus d'informations, consultez la section Effectuer un balayage parallèle.