Tous les produits
Search
Centre de documentation

Tablestore:Nested query

Dernière mise à jour :Aug 18, 2026

Utilisez une requête imbriquée dans le SDK Tablestore pour Go afin de faire correspondre des conditions au sein d'une même ligne enfant d'un champ Nested.

Prérequis

Installez le SDK Go Tablestore et initialisez un client.

Description

Chaque ligne enfant d'un champ Nested est indexée en tant que document imbriqué indépendant. Une requête imbriquée garantit que les conditions portant sur plusieurs champs enfants correspondent à la même ligne enfant, évitant ainsi les correspondances croisées entre différentes lignes enfants.

func (client *tablestore.TableStoreClient) Search(request *tablestore.SearchRequest) (*tablestore.SearchResponse, error)

L'exemple suivant interroge les données et renvoie jusqu'à 10 lignes ainsi que le nombre total de lignes correspondantes.

tableName := "example_table"
indexName := "example_index"

query := &search.NestedQuery{Path: "items", Query: &search.TermQuery{FieldName: "items.name", Term: "alice"}, ScoreMode: search.ScoreMode_Avg}
searchQuery := search.NewSearchQuery().
    SetQuery(query).
    SetLimit(10).
    SetGetTotalCount(true)

response, err := client.Search(&tablestore.SearchRequest{
    TableName:   tableName,
    IndexName:   indexName,
    SearchQuery: searchQuery,
    ColumnsToGet: &tablestore.ColumnsToGet{
        ReturnAllFromIndex: true,
    },
})
if err != nil {
    log.Fatal(err)
}

fmt.Println(response.TotalCount)
fmt.Println(response.Rows)

Paramètres

Requête de recherche

Le paramètre request est de type tablestore.SearchRequest et contient les paramètres suivants.

Nom

Type

Description

TableName (obligatoire)

string

Nom de la table de données.

IndexName (obligatoire)

string

Nom de l'index de recherche.

SearchQuery (obligatoire)

search.SearchQuery

Condition de requête et configurations courantes.

ColumnsToGet (facultatif)

*tablestore.ColumnsToGet

Configuration des colonnes à renvoyer. Si ce paramètre est omis, seules les colonnes de clé primaire sont renvoyées.

RoutingValues (facultatif)

[]*tablestore.PrimaryKey

Valeurs de clé primaire pour les champs de routage personnalisé. Omettez ce paramètre si le routage personnalisé n'est pas configuré.

TimeoutMs (facultatif)

*int32

Délai d'expiration de la requête en millisecondes.

Configuration de la requête

Créez une configuration de requête en appelant search.NewSearchQuery() et configurez-la à l'aide des méthodes suivantes.

Nom

Type

Description

SetQuery (obligatoire)

search.Query

Spécifie la condition de requête.

SetOffset (facultatif)

int32

Spécifie la position de départ. Valeur par défaut : 0. Pour la pagination basée sur le décalage, la somme Offset + Limit ne peut pas dépasser 100 000.

SetLimit (facultatif)

int32

Spécifie le nombre maximal de lignes à renvoyer. Valeur par défaut : 10. Valeur maximale : 100. Une valeur de 0 ne renvoie aucune ligne.

SetCollapse (facultatif)

*search.Collapse

Regroupe les résultats de la requête. Pour plus d'informations, consultez Regrouper les résultats de requête.

SetSort (facultatif)

*search.Sort

Spécifie l'ordre de tri des résultats. Pour plus d'informations, consultez Trier et paginer les résultats.

SetGetTotalCount (facultatif)

bool

Indique s'il faut compter toutes les lignes correspondantes. Valeur par défaut : false.

SetToken (facultatif)

[]byte

Spécifie la valeur NextToken renvoyée par la réponse précédente. Cette méthode efface Sort car le jeton contient les conditions de tri de la page précédente. Ne spécifiez pas Offset lorsque vous utilisez la pagination basée sur un jeton.

SetSearchFilter (facultatif)

*search.SearchFilter

Applique un filtre post-requête. Pour plus d'informations, consultez Utiliser des filtres post-requête.

Aggregation (facultatif)

...search.Aggregation

Configure les agrégations. Pour plus d'informations, consultez Agrégation.

GroupBy (facultatif)

...search.GroupBy

Configure le regroupement. Pour plus d'informations, consultez Agrégation.

Condition de requête

La requête est de type search.NestedQuery et contient les paramètres suivants.

Nom

Type

Description

Path (obligatoire)

string

Chemin du champ Nested.

Query (obligatoire)

search.Query

Requête sur les champs enfants. Utilisez un chemin complet tel que items.name pour un champ enfant.

ScoreMode (facultatif)

search.ScoreMode

Méthode utilisée pour combiner les scores des lignes enfants correspondantes.

InnerHits (facultatif)

*search.InnerHits

Renvoie les lignes enfants correspondantes et permet de configurer la pagination, le tri et la mise en surbrillance pour ces lignes.

Configuration InnerHits

Le paramètre InnerHits contient les paramètres suivants.

Nom

Type

Description

Offset (facultatif)

*int32

Position de départ des lignes enfants correspondantes.

Limit (facultatif)

*int32

Nombre de lignes enfants correspondantes à renvoyer. Valeur par défaut : 3.

Sort (facultatif)

*search.Sort

Ordre de tri des lignes enfants correspondantes.

Highlight (facultatif)

*search.Highlight

Configuration du résumé et de la mise en surbrillance pour les champs enfants Nested. Pour plus d'informations, consultez Résumé et mise en surbrillance.

Colonnes à renvoyer

Le paramètre request.ColumnsToGet est de type tablestore.ColumnsToGet et contient les paramètres suivants.

Nom

Type

Description

Columns (facultatif)

[]string

Colonnes d'attribut à renvoyer. Ce paramètre prend effet uniquement lorsque ReturnAll et ReturnAllFromIndex sont tous deux définis sur false.

ReturnAll (facultatif)

bool

Indique s'il faut renvoyer toutes les colonnes d'attribut de la table de données. Valeur par défaut : false.

ReturnAllFromIndex (facultatif)

bool

Indique s'il faut renvoyer toutes les colonnes d'attribut indexées. Valeur par défaut : false. Ne définissez pas ce paramètre et ReturnAll sur true simultanément.

Réponse

La méthode Search renvoie une valeur tablestore.SearchResponse. Le tableau suivant décrit les champs métier principaux.

Nom

Type

Description

TotalCount

int64

Nombre total de lignes correspondantes. La valeur dépend de SetGetTotalCount.

Rows

[]*tablestore.Row

Lignes renvoyées par la requête actuelle. Le nombre ne dépasse pas la valeur spécifiée par SetLimit.

SearchHits

[]*tablestore.SearchHit

Résultats de recherche. Lisez ce champ lorsque vous utilisez la mise en surbrillance, les inner hits imbriqués ou les scores de pertinence.

NextToken

[]byte

Jeton pour la page suivante. Si la valeur n'est pas vide, transmettez-la à la requête suivante.

IsAllSuccess

bool

Indique si toutes les partitions d'index ont été interrogées. Si la valeur est false, des résultats partiels sont renvoyés et TotalCount peut être inférieur au nombre réel de lignes correspondantes.

AggregationResults

search.AggregationResults

Résultats d'agrégation.

GroupByResults

search.GroupByResults

Résultats de regroupement.