Tous les produits
Search
Centre de documentation

Tablestore:Match phrase query

Dernière mise à jour :Aug 18, 2026

Utilisez le SDK Tablestore pour Python afin d'interroger un champ Text en fonction de l'ordre et des positions des jetons.

Prérequis

Installez le SDK Tablestore pour Python et initialisez un client.

Description

Une requête de correspondance d'expression recherche dans un champ Text (voir Types de chaîne) les jetons qui apparaissent dans l'ordre et aux positions spécifiés. L'analyseur configuré pour l'index de recherche analyse à la fois la valeur du champ et le texte de la requête. Contrairement à une Requête de correspondance, qui vérifie uniquement la correspondance des jetons, une requête de correspondance d'expression vérifie également leur ordre et leurs positions. Utilisez le paramètre slop pour autoriser des écarts entre les jetons adjacents.

MatchPhraseQuery(field_name, text, weight=None, slop=None)

L'exemple suivant interroge les lignes dont le champ description contient les jetons tablestore et durable consécutivement et dans l'ordre.

query = MatchPhraseQuery("description", "tablestore durable")
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

Le nom de la table de données.

index_name (obligatoire)

str

Le nom de l'index de recherche.

search_query (obligatoire)

SearchQuery

La condition de requête et les configurations de requête courantes.

columns_to_get (facultatif)

ColumnsToGet

La configuration des colonnes à renvoyer. Si ce paramètre n'est pas spécifié, seules les colonnes de clé primaire sont renvoyées.

routing_keys (facultatif)

list

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

timeout_s (facultatif)

int

Le délai d'expiration de la requête en secondes. Si ce paramètre n'est pas spécifié, le délai d'expiration au niveau du client est utilisé.

Configuration de la requête

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

Nom

Type

Description

query (obligatoire)

Query

La condition de requête. Définissez ce paramètre sur MatchPhraseQuery.

sort (facultatif)

Sort

L'ordre de tri des résultats. Pour plus d'informations, consultez la rubrique 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. La définition de ce paramètre sur True augmente la charge de la requête.

next_token (facultatif)

bytes

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

offset (facultatif)

int

Le décalage à partir duquel la requête commence. Utilisez ce paramètre pour une pagination peu profonde.

limit (facultatif)

int

Le nombre maximal de lignes à renvoyer. Si ce paramètre est défini sur 0, aucune ligne n'est renvoyée.

aggs (facultatif)

list[Agg]

Les configurations d'agrégation de métriques. Pour plus d'informations, consultez la rubrique Agrégation.

group_bys (facultatif)

list[BaseGroupBy]

Les configurations de regroupement. Pour plus d'informations, consultez la rubrique Agrégation.

collapse_field (facultatif)

Collapse

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

highlight (facultatif)

Highlight

La configuration de résumé et de mise en surbrillance pour les champs Text. Pour plus d'informations, consultez la rubrique Résumé et mise en surbrillance.

Condition de correspondance d'expression

Le paramètre search_query.query est de type MatchPhraseQuery et contient les paramètres suivants.

Nom

Type

Description

field_name (obligatoire)

str

Le nom du champ Text à interroger.

text (obligatoire)

str

Le texte de la requête. Il est analysé par l'analyseur de champ et mis en correspondance selon l'ordre et les positions des jetons.

weight (facultatif)

float

Le poids de la requête, qui doit être un nombre à virgule flottante positif. Valeur par défaut : 1.0. Il affecte les scores de pertinence mais pas la correspondance.

slop (facultatif)

int

L'écart positionnel maximal autorisé entre les jetons de requête adjacents. Valeur par défaut : 0, ce qui exige que les jetons soient consécutifs.

Colonnes renvoyées

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

Nom

Type

Description

column_names (facultatif)

list[str]

Les noms des colonnes d'attribut à renvoyer. Spécifiez ce paramètre uniquement lorsque return_type est défini sur SPECIFIED.

return_type (facultatif)

ColumnReturnType

Le mode de retour des colonnes. NONE (par défaut) renvoie uniquement les colonnes de clé primaire ; SPECIFIED renvoie les colonnes d'attribut spécifiées ; ALL renvoie toutes les colonnes d'attribut de la table ; et 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]

Les lignes renvoyées par la requête. Le nombre ne dépasse pas la valeur de limit.

next_token

bytes

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

total_count

int

Le 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, des résultats partiels sont renvoyés.

agg_results

list[AggResult]

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

group_by_results

list[GroupByResult]

Les résultats de regroupement. Ce champ est vide si le paramètre group_bys n'est pas configuré.

search_hits

list[SearchHit]

Les occurrences de recherche, incluant des informations étendues telles que les lignes, les scores de pertinence et les mises en surbrillance.

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 les versions 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éballage 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()