Utilisez le SDK Tablestore pour Python pour sélectionner toutes les lignes d'un index de recherche et renvoyer soit les lignes correspondantes, soit leur nombre total.
Prérequis
Installez le SDK Tablestore pour Python et initialisez un client.
Description
Une requête MatchAllQuery sélectionne toutes les données d'un index de recherche sans appliquer de condition sur les champs ou les valeurs. Lors de l'appel à la méthode search, définissez le type de requête sur MatchAllQuery.
MatchAllQuery()
L'exemple suivant sélectionne toutes les lignes d'un index de recherche et renvoie jusqu'à 10 lignes ainsi que le nombre total de lignes correspondantes.
query = MatchAllQuery()
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)
MatchAllQuery attribue le même score de pertinence à toutes les lignes correspondantes. En l'absence de critère de tri, l'ordre des lignes renvoyées n'est pas garanti. Pour récupérer uniquement le nombre total de lignes correspondantes, définissez limit sur 0. L'activation du comptage total augmente la charge de la requête.
Paramètres
Demande de recherche
La méthode search accepte les paramètres suivants.
|
Nom |
Type |
Description |
|
table_name (obligatoire) |
|
<!--@p {"id":"ad6edd70dcbe"}--br>Le nom de la table de données. |
|
index_name (obligatoire) |
|
Le nom de l'index de recherche. |
|
search_query (obligatoire) |
|
La condition de requête et sa configuration générale. |
|
columns_to_get (facultatif) |
|
La configuration des colonnes à renvoyer. Par défaut, seules les colonnes de clé primaire sont renvoyées. |
|
routing_keys (facultatif) |
|
La liste des valeurs de clé primaire pour les champs de routage personnalisé. Ce paramètre est inutile si le routage personnalisé n'est pas configuré. |
|
timeout_s (facultatif) |
|
Le délai d'expiration de la requête, en secondes. Par défaut, le délai d'expiration configuré au niveau du client s'applique. |
Configuration de la requête
L'objet search_query est de type SearchQuery et accepte les paramètres suivants.
|
Nom |
Type |
Description |
|
query (obligatoire) |
|
La condition de requête. Définissez ce paramètre sur |
|
sort (facultatif) |
|
L'ordre de tri des résultats. Pour plus d'informations, consultez la rubrique Trier et paginer les résultats. |
|
get_total_count (facultatif) |
|
Indique s'il faut renvoyer le nombre total de lignes correspondantes. Valeur par défaut : |
|
next_token (facultatif) |
|
Le jeton de pagination. Renseignez ce paramètre avec la valeur |
|
offset (facultatif) |
|
Le décalage de départ de la requête. Utilisez ce paramètre pour une pagination simple. |
|
limit (facultatif) |
|
Le nombre maximal de lignes à renvoyer. La valeur |
|
aggs (facultatif) |
|
Les configurations d'agrégation. Pour plus d'informations, consultez la rubrique Agrégation. |
|
group_bys (facultatif) |
|
Les configurations de regroupement. Pour plus d'informations, consultez la rubrique Agrégation. |
|
collapse_field (facultatif) |
|
La configuration de réduction (collapse), qui supprime les doublons selon un champ spécifié. Pour plus d'informations, consultez la rubrique Réduire les résultats de la requête. |
Condition de requête
L'attribut search_query.query est de type MatchAllQuery et n'accepte aucun paramètre supplémentaire.
Colonnes de retour
L'objet columns_to_get est de type ColumnsToGet et accepte les paramètres suivants.
|
Nom |
Type |
Description |
|
column_names (facultatif) |
|
Les noms des colonnes d'attribut à renvoyer. Spécifiez ce paramètre uniquement si |
|
return_type (facultatif) |
|
Le mode de retour des colonnes. |
Réponse
La méthode search renvoie un objet SearchResponse. Le tableau suivant décrit les champs principaux.
|
Champ |
Type |
Description |
|
rows |
|
Les lignes renvoyées par la requête actuelle. Leur nombre ne dépasse pas |
|
next_token |
|
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 |
|
Le nombre de lignes correspondantes. Cette valeur dépend de la configuration |
|
is_all_succeed |
|
Indique si toutes les partitions d'index ont été interrogées. Si la valeur est |
|
agg_results |
|
Les résultats d'agrégation. Ce champ est vide si |
|
group_by_results |
|
Les résultats de regroupement. Ce champ est vide si |
|
search_hits |
|
Les correspondances 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. À partir de la version 5.2.1, appelez SearchResponse.v1_response() pour obtenir un tuple compatible avec les versions précédentes. Pour le nouveau code, accédez directement aux attributs de l'objet SearchResponse afin d'éviter les erreurs de déballage en cas d'extension des champs de réponse.
(
rows,
next_token,
total_count,
is_all_succeed,
agg_results,
group_by_results,
search_hits,
) = response.v1_response()