Tous les produits
Search
Centre de documentation

Tablestore:Match query

Dernière mise à jour :Aug 08, 2026

Utilisez le SDK Tablestore pour Python pour effectuer des recherches en texte intégral sur les champs Text ou Keyword et renvoyer les données correspondantes.

Prérequis

Installez le SDK Tablestore pour Python et initialisez un client.

Description

Une requête de correspondance (MatchQuery) recherche dans les champs Text ou Keyword (voir Types de chaînes). Pour un champ Text, l'analyseur du champ tokenize le texte de la requête ; les paramètres operator ou minimum_should_match déterminent alors les jetons devant correspondre. Pour un champ Keyword, le texte de la requête n'est pas tokenisé. Une requête de correspondance n'impose ni la consecutivité ni l'ordre des jetons tels qu'ils apparaissent dans le texte de requête. Pour faire correspondre l'ordre et la position des jetons, utilisez une Requête de correspondance de phrase.

MatchQuery(
    field_name,
    text,
    minimum_should_match=None,
    operator=None,
    weight=None,
)

L'exemple suivant interroge les lignes dont le champ description contient à la fois les jetons tablestore et durable.

query = MatchQuery(
    "description",
    "tablestore durable",
    operator=QueryOperator.AND,
)
response = client.search(
    "example_table",
    "example_index",
    SearchQuery(
        query,
        sort=Sort([ScoreSort()]),
        limit=10,
        get_total_count=True,
    ),
    ColumnsToGet(return_type=ColumnReturnType.ALL),
)
for hit in response.search_hits:
    print(hit.score, hit.row)

Paramètres

Requête de recherche

La méthode search accepte les paramètres suivants.

Nom

Type

Description

table_name (obligatoire)

str

Nom de la table de données.

index_name (obligatoire)

str

Nom de l'index de recherche.

search_query (obligatoire)

SearchQuery

Condition de requête et configurations courantes.

columns_to_get (facultatif)

ColumnsToGet

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

routing_keys (facultatif)

list

Valeurs de clé primaire des champs de routage personnalisés. Ce paramètre est inutile si le routage personnalisé n'est pas configuré.

timeout_s (facultatif)

int

Délai d'expiration de la requête, en secondes. À défaut, le délai d'expiration défini au niveau du client s'applique.

Configuration de la requête

Le paramètre search_query est de type SearchQuery et accepte les paramètres suivants.

Nom

Type

Description

query (obligatoire)

Query

Condition de requête. Définissez ce paramètre sur MatchQuery.

sort (facultatif)

Sort

Ordre de tri des résultats. Pour plus d'informations, consultez la section Trier et paginer les résultats.

get_total_count (facultatif)

bool

Indique s'il faut renvoyer le nombre total de lignes correspondantes. Valeur par défaut : False. Définir ce paramètre sur True augmente la charge de la requête.

next_token (facultatif)

bytes

Jeton de pagination. Transmettez le paramètre next_token issu de la réponse précédente pour récupérer la page suivante.

offset (facultatif)

int

Décalage de départ de la requête. Utilisez ce paramètre pour une pagination peu profonde.

limit (facultatif)

int

Nombre maximal de lignes à renvoyer. Si ce paramètre vaut 0, aucune ligne n'est renvoyée.

aggs (facultatif)

list[Agg]

Configurations d'agrégation de métriques. Pour plus d'informations, consultez la section Agrégation.

group_bys (facultatif)

list[BaseGroupBy]

Configurations de regroupement. Pour plus d'informations, consultez la section Agrégation.

collapse_field (facultatif)

Collapse

Configuration de réduction des résultats. Pour plus d'informations, consultez la section Réduire les résultats de la requête.

highlight (facultatif)

Highlight

Configuration de résumé et de mise en évidence pour les champs Text. Pour plus d'informations, consultez la section Résumé et mise en évidence.

Condition de correspondance

Le paramètre search_query.query est de type MatchQuery et accepte les paramètres suivants.

Nom

Type

Description

field_name (obligatoire)

str

Nom du champ Text ou Keyword à interroger.

text (obligatoire)

str

Texte de la requête. Il est tokenisé pour un champ Text et ne l'est pas pour un champ Keyword.

minimum_should_match (facultatif)

int

Nombre minimal de jetons de requête devant correspondre lorsque operator vaut OR.

operator (facultatif)

QueryOperator

Mode de combinaison des jetons. OR (par défaut) correspond à n'importe quel jeton, tandis que AND exige que tous les jetons correspondent.

weight (facultatif)

float

Poids de la requête, qui doit être un nombre à virgule flottante positif. Valeur par défaut : 1.0. Ce paramètre affecte les scores de pertinence, mais pas la logique de correspondance.

Colonnes renvoyées

Le paramètre columns_to_get est de type ColumnsToGet et accepte les paramètres suivants.

Nom

Type

Description

column_names (facultatif)

list[str]

Noms des colonnes d'attributs à renvoyer. Spécifiez ce paramètre uniquement lorsque return_type vaut SPECIFIED.

return_type (facultatif)

ColumnReturnType

Mode de renvoi des colonnes. NONE (par défaut) renvoie uniquement les colonnes de clé primaire ; SPECIFIED renvoie les colonnes d'attributs spécifiées ; ALL renvoie toutes les colonnes d'attributs de la table ; ALL_FROM_INDEX renvoie tous les champs stockés dans l'index.

Réponse

La méthode search renvoie un objet SearchResponse. Le tableau suivant décrit les champs principaux.

Champ

Type

Description

rows

list[Row]

Lignes renvoyées par la requête. Leur nombre ne dépasse pas la valeur de limit.

next_token

bytes

Jeton pour la page suivante. Une valeur vide indique qu'aucune autre donnée n'est disponible.

total_count

int

Nombre de lignes correspondantes. La valeur dépend du paramètre get_total_count.

is_all_succeed

bool

Indique si toutes les partitions d'index ont été interrogées. Si la valeur est False, seuls des résultats partiels sont renvoyés.

agg_results

list[AggResult]

Résultats de l'agrégation de métriques. Ce champ est vide si le paramètre aggs n'est pas configuré.

group_by_results

list[GroupByResult]

Résultats du regroupement. Ce champ est vide si le paramètre group_bys n'est pas configuré.

search_hits

list[SearchHit]

Occurrences de recherche, incluant des informations étendues telles que les lignes, les scores de pertinence et les mises en évidence.

Réponse compatible avec les tuples

À partir de la version 5.2.0 du SDK Tablestore pour Python, les API de recherche renvoient des objets de réponse au lieu de tuples. Les versions 5.1.0 et antérieures renvoient directement des tuples. Dans la version 5.2.1 et ultérieures, vous pouvez appeler la méthode SearchResponse.v1_response() pour obtenir un tuple compatible avec les versions antérieures. Pour le nouveau code, accédez directement aux attributs de l'objet SearchResponse afin d'éviter les erreurs de décompression si les champs de réponse sont étendus.

(
    rows,
    next_token,
    total_count,
    is_all_succeed,
    agg_results,
    group_by_results,
    search_hits,
) = response.v1_response()

Exemples

Spécifier le nombre minimal de jetons correspondants

L'exemple suivant exige qu'au moins deux jetons du texte de requête tokenisé correspondent.

query = MatchQuery(
    "description",
    "tablestore durable cloud",
    operator=QueryOperator.OR,
    minimum_should_match=2,
)
response = client.search(
    "example_table",
    "example_index",
    SearchQuery(query, limit=10),
)
print(response.rows)