Tous les produits
Search
Centre de documentation

Tablestore:Requête par préfixe

Dernière mise à jour :Aug 08, 2026

Utilisez le SDK Tablestore pour Python pour faire correspondre les valeurs de champ ou les jetons commençant par une chaîne spécifiée.

Prérequis

Installez le SDK Tablestore pour Python et initialisez un client.

Description

Une requête par préfixe fait correspondre les valeurs de champ ou les jetons commençant par la chaîne de requête. Pour un champ Keyword, la valeur complète du champ doit commencer par la chaîne de requête. Pour un champ Text, une ligne correspond si l'un des jetons commence par la chaîne de requête. La chaîne de requête n'est pas tokenisée. La correspondance est sensible à la casse. Lors de l'appel de la méthode search, définissez le type de requête sur PrefixQuery. Pour plus d'informations sur les types de champs, consultez la rubrique Types de chaînes.

PrefixQuery(field_name, prefix, weight=None)

L'exemple suivant interroge les lignes dont le champ category commence par book- et renvoie jusqu'à 10 lignes ainsi que le nombre total de lignes correspondantes.

query = PrefixQuery("category", "book-")
search_query = SearchQuery(
    query,
    limit=10,
    get_total_count=True,
)
response = client.search(
    "example_table",
    "example_index",
    search_query,
    ColumnsToGet(return_type=ColumnReturnType.ALL),
)
print(response.total_count)
for row in response.rows:
    print(row)

Paramètres

Demande 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 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

La liste des valeurs de clé primaire pour les champs de routage personnalisés. Vous n'avez pas besoin de spécifier ce paramètre 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 PrefixQuery.

sort (facultatif)

Sort

L'ordre de tri des résultats de la requête. Pour plus d'informations, consultez la rubrique Tri et pagination des 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. Définissez ce paramètre sur la valeur next_token de la réponse précédente pour récupérer la page suivante. Pour plus d'informations, consultez la rubrique Tri et pagination des résultats.

offset (facultatif)

int

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

limit (facultatif)

int

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

aggs (facultatif)

list[Agg]

Les configurations d'agrégation. 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, qui supprime les doublons en fonction d'un champ spécifié. Pour plus d'informations, consultez la rubrique Réduction des résultats de 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 requête

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

Nom

Type

Description

field_name (obligatoire)

str

Le nom du champ Keyword ou Text à interroger.

prefix (obligatoire)

str

La chaîne de requête. Pour un champ Keyword, la valeur du champ doit commencer par la chaîne. Pour un champ Text, un jeton doit commencer par la chaîne. La chaîne n'est pas tokenisée. La correspondance est sensible à la casse.

weight (facultatif)

float

Le poids de pertinence de la condition de requête. La valeur doit être un nombre à virgule flottante positif. Ce paramètre n'affecte ni la correspondance ni le nombre de lignes renvoyées. Il influe uniquement sur l'ordre lorsque les résultats sont triés par score de pertinence. Valeur par défaut : 1.0.

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'attributs à 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'attributs spécifiées dans column_names ; ALL renvoie toutes les colonnes d'attributs de la table ; et ALL_FROM_INDEX renvoie toutes les colonnes d'attributs indexées.

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 actuelle. Le nombre de lignes ne dépasse pas la valeur limit.

next_token

bytes

Le jeton pour la page suivante. Si ce champ n'est pas vide, transmettez-le à la requête suivante pour poursuivre la lecture.

total_count

int

Le nombre de lignes correspondantes. La valeur dépend de la configuration 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 et total_count peut être inférieur au nombre réel de lignes correspondantes.

agg_results

list[AggResult]

Les résultats d'agrégation. Ce champ est vide si aggs n'est pas configuré.

group_by_results

list[GroupByResult]

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

search_hits

list[SearchHit]

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

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 SearchResponse.v1_response() pour obtenir un tuple compatible avec les versions antérieures. Pour le nouveau code, accédez directement aux attributs 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()