Une requête par suffixe (SuffixQuery) permet de trouver dans un index de recherche les données se terminant par une chaîne spécifique. Par exemple, vous pouvez rechercher une livraison de colis en utilisant les quatre derniers chiffres d'un numéro de téléphone.
Fonctionnement
Pour exécuter une SuffixQuery, spécifiez la valeur du suffixe à faire correspondre.
Seul le type de données FuzzyKeyword prend en charge les requêtes par suffixe. Le type FuzzyKeyword est optimisé pour les opérations de recherche floue telles que SuffixQuery, PrefixQuery et wildcard query, et offre des performances stables quel que soit le volume de données.
Les champs de type
FuzzyKeywordne prennent pas en charge le tri ni l'agrégation. Si vous devez trier ou agréger un champFuzzyKeyword, créez unevirtual columnde typeKeywordà cet effet.Pour simuler une requête par suffixe sur un champ
Keyword, inversez la chaîne lors de l'écriture des données, puis utilisez une requête par préfixe (PrefixQuery) pour rechercher les données.
API
Appelez l'opération Search ou ParallelScan en définissant le type de requête sur SuffixQuery.
Paramètres
Requête de recherche
L'objet request est un objet SearchRequest qui 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) |
SearchQuery |
Condition de requête et paramètres généraux de la requête. |
|
columnsToGet (facultatif) |
SearchRequest.ColumnsToGet |
Colonnes à renvoyer. Si ce paramètre n'est pas configuré, seules les colonnes de clé primaire sont renvoyées. |
|
timeoutInMillisecond (facultatif) |
int |
Délai d'expiration de la requête au niveau de la demande, en millisecondes. La valeur par défaut est |
|
routingValues (facultatif) |
|
Valeurs de clé primaire correspondant aux champs de routage personnalisés. Laissez ce paramètre non défini si le routage personnalisé n'est pas configuré. |
Paramètres de requête
L'objet request.searchQuery est un objet SearchQuery qui contient les paramètres suivants.
|
Nom |
Type |
Description |
|
query (obligatoire) |
Query |
Condition de requête. Définissez ce paramètre sur un objet |
|
offset (facultatif) |
Integer |
Position à partir de laquelle commencer la requête actuelle. |
|
limit (facultatif) |
Integer |
Nombre maximal de lignes à renvoyer. Définissez ce paramètre sur |
|
collapse (facultatif) |
Collapse |
Configuration de réduction utilisée pour dédupliquer les résultats selon un champ spécifié. Pour plus d'informations, consultez la section Collapse (distinct). |
|
sort (facultatif) |
Sort |
Ordre de tri des résultats. Les champs |
|
trackTotalCount (facultatif) |
int |
Nombre maximal de lignes correspondantes à compter. La valeur par défaut est |
|
filter (facultatif) |
SearchFilter |
Filtre post-requête appliqué aux résultats de |
|
aggregationList (facultatif) |
|
Configurations d'agrégation. Les champs |
|
groupByList (facultatif) |
|
Configurations de regroupement. Les champs |
|
token (facultatif) |
byte[] |
Jeton de pagination. Définissez le |
Condition de requête
L'objet request.searchQuery.query est un objet SuffixQuery qui contient les paramètres suivants.
|
Nom |
Type |
Description |
|
fieldName (obligatoire) |
String |
Nom du champ |
|
suffix (obligatoire) |
String |
Chaîne de requête. La valeur complète du champ doit se terminer par cette chaîne. La correspondance respecte la casse. |
|
weight (facultatif) |
float |
Poids de pertinence de la condition de requête. La valeur doit être un nombre à virgule flottante positif. Une valeur plus élevée accorde plus d'influence à la condition sur le score de pertinence BM25. Ce paramètre ne modifie ni les lignes correspondantes ni le nombre de lignes renvoyées. Il affecte l'ordre des résultats uniquement lorsque |
Colonnes renvoyées
L'objet request.columnsToGet est un objet SearchRequest.ColumnsToGet qui contient les paramètres suivants.
|
Nom |
Type |
Description |
|
columns (facultatif) |
|
Colonnes d'attribut à renvoyer. Configurez ce paramètre uniquement si |
|
returnAll (facultatif) |
boolean |
Indique s'il faut renvoyer toutes les colonnes d'attribut de la table de données. La valeur par défaut est |
|
returnAllFromIndex (facultatif) |
boolean |
Indique s'il faut renvoyer toutes les colonnes d'attribut indexées. La valeur par défaut est |
Utilisation
Effectuez une requête par suffixe à l'aide de la console Tablestore ou d'un SDK. Avant de commencer, assurez-vous d'avoir rempli les conditions préalables suivantes :
Vous avez créé un
RAM useret lui avez accordé les autorisations nécessaires pour accéder à Tablestore. Pour plus d'informations, consultez la section Use the AccessKey pair of a RAM user to access Tablestore.Vous avez créé une table de données. Pour plus d'informations, consultez la section Operations on data tables.
Vous avez créé un index de recherche pour la table de données. Pour plus d'informations, consultez la section Create a search index.
Facturation
L'interrogation des données à l'aide d'un index de recherche consomme du débit de lecture. Pour plus d'informations, consultez la section Search Index metering and billing.
FAQ
Rubriques connexes
L'index de recherche prend en charge divers types de requêtes pour les interrogations de données multidimensionnelles, notamment la requête par terme, la requête par termes, la requête match all, la requête par correspondance, la requête par correspondance de phrase, la requête par plage, la requête par préfixe, la requête par suffixe, la requête avec caractères génériques, la requête avec caractères génériques basée sur des jetons, la requête booléenne, la requête géographique, la requête imbriquée, la recherche vectorielle, et la requête exists.
Lorsque vous interrogez des données, vous pouvez trier et paginer l'ensemble de résultats ou effectuer une réduction (déduplication).
Pour l'analyse des données, telle que la recherche de la valeur maximale ou minimale, le calcul d'une somme ou le comptage de lignes, vous pouvez utiliser les fonctionnalités d'agrégation statistique ou de requête SQL.
Pour exporter rapidement des données indépendamment de l'ordre de l'ensemble de résultats, vous pouvez utiliser la fonctionnalité Parallel Scan.