Tous les produits
Search
Centre de documentation

Tablestore:Requête par suffixe

Dernière mise à jour :Aug 20, 2026

Une requête par suffixe avec le SDK Tablestore pour Java identifie les valeurs complètes du champ FuzzyKeyword se terminant par une chaîne spécifiée et renvoie les lignes correspondantes ou leur nombre total.

Prérequis

Installez le SDK Tablestore pour Java et initialisez un client.

Remarque

Les requêtes par suffixe nécessitent la version 5.17.0 ou ultérieure du SDK Tablestore pour Java.

Description de la fonctionnalité

Une requête par suffixe identifie les valeurs complètes d'un champ se terminant par une chaîne spécifique. Ce type de requête prend uniquement en charge les champs FuzzyKeyword. Pour plus d'informations sur ce type de champ, consultez la section Types de chaînes. La correspondance respecte la casse. Par exemple, la valeur de champ order-H001 correspond au suffixe H001 mais pas à h001.

Remarque

Les champs FuzzyKeyword ne prennent pas en charge le tri ni l'agrégation. Si votre requête nécessite ces opérations, utilisez un autre champ compatible.

Les champs Keyword ne prennent pas en charge SuffixQuery. Pour obtenir un résultat équivalent, inversez la valeur du champ avant de l'écrire dans un champ Keyword dédié aux requêtes. Lors de l'exécution de la requête, inversez la chaîne de suffixe recherchée et exécutez une requête par préfixe (PrefixQuery) sur ce champ.

Définissez le type de requête sur SuffixQuery lors de l'appel à search. Utilisez SearchQuery pour configurer la limite de résultats, le suivi du nombre total et d'autres paramètres généraux de la requête.

SearchResponse search(SearchRequest request)

L'exemple suivant interroge les valeurs FuzzyKeyword du champ phone se terminant par 1234. La requête renvoie jusqu'à 10 lignes ainsi que le nombre total de correspondances.

String tableName = "example_table";
String indexName = "example_index";

SuffixQuery suffixQuery = new SuffixQuery();
suffixQuery.setFieldName("phone");
suffixQuery.setSuffix("1234");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(suffixQuery);
searchQuery.setLimit(10);
searchQuery.setTrackTotalCount(SearchQuery.TRACK_TOTAL_COUNT);

SearchRequest request = new SearchRequest(tableName, indexName, searchQuery);
SearchRequest.ColumnsToGet columnsToGet = new SearchRequest.ColumnsToGet();
columnsToGet.setReturnAll(true);
request.setColumnsToGet(columnsToGet);

SearchResponse response = client.search(request);
System.out.println(response.getTotalCount());
System.out.println(response.getRows());

Paramètres

Requête de recherche

Le paramètre request est un objet SearchRequest contenant les éléments 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.

columnsToGet (facultatif)

SearchRequest.ColumnsToGet

Colonnes à renvoyer. En l'absence de configuration, seules les colonnes de clé primaire sont retournées.

timeoutInMillisecond (facultatif)

int

Délai d'expiration de la requête en millisecondes. La valeur par défaut est -1, ce qui signifie qu'aucun délai d'expiration spécifique n'est configuré.

routingValues (facultatif)

List<PrimaryKey>

Valeurs de clé primaire correspondant aux champs de routage personnalisé. Laissez ce paramètre vide si le routage personnalisé n'est pas activé.

Paramètres de requête

L'objet request.searchQuery est une instance de SearchQuery contenant les paramètres suivants.

Nom

Type

Description

query (obligatoire)

Query

Condition de requête. Définissez ce paramètre sur un objet SuffixQuery pour effectuer une requête par suffixe.

offset (facultatif)

Integer

Position de départ pour la requête actuelle.

limit (facultatif)

Integer

Nombre maximal de lignes à renvoyer. Définissez ce paramètre sur 0 pour ne renvoyer aucune ligne.

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 Réduction (distinct).

sort (facultatif)

Sort

Ordre de tri des résultats. Les champs FuzzyKeyword ne peuvent pas servir de champs de tri. Pour plus d'informations, consultez la section Tri et pagination.

trackTotalCount (facultatif)

int

Nombre maximal de lignes correspondantes à comptabiliser. La valeur par défaut est TRACK_TOTAL_COUNT_DISABLED, ce qui désactive le comptage. Définissez ce paramètre sur TRACK_TOTAL_COUNT pour compter toutes les lignes correspondantes. Une valeur plus faible améliore les performances de la requête.

filter (facultatif)

SearchFilter

Filtre post-requête appliqué aux résultats de query.

aggregationList (facultatif)

List<Aggregation>

Configurations d'agrégation. Les champs FuzzyKeyword ne peuvent pas servir de champs d'agrégation. Pour plus d'informations, consultez la section Agrégation.

groupByList (facultatif)

List<GroupBy>

Configurations de regroupement. Les champs FuzzyKeyword ne peuvent pas servir de champs de regroupement. Pour plus d'informations, consultez la section Agrégation.

token (facultatif)

byte[]

Jeton de pagination. Utilisez la valeur nextToken de la réponse précédente pour lire la page suivante. Lorsque token est défini, le SDK efface sort car le jeton contient déjà la condition de tri.

Condition de requête

L'objet request.searchQuery.query est une instance de SuffixQuery contenant les paramètres suivants.

Nom

Type

Description

fieldName (obligatoire)

String

Nom du champ FuzzyKeyword à interroger.

suffix (obligatoire)

String

Chaîne de recherche. 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 accroît l'influence de la condition sur le score de pertinence BM25. Ce paramètre ne modifie ni les lignes correspondantes ni leur nombre. Il affecte l'ordre des résultats uniquement lorsque ScoreSort est utilisé. La valeur par défaut est 1.0.

Colonnes renvoyées

L'objet request.columnsToGet est une instance de SearchRequest.ColumnsToGet contenant les paramètres suivants.

Nom

Type

Description

columns (facultatif)

List<String>

Colonnes d'attribut à renvoyer. Configurez ce paramètre uniquement si returnAll et returnAllFromIndex sont tous deux définis sur false. En l'absence de configuration, seules les colonnes de clé primaire sont retournées.

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 false.

returnAllFromIndex (facultatif)

boolean

Indique s'il faut renvoyer toutes les colonnes d'attribut indexées. La valeur par défaut est false. Ne définissez pas simultanément returnAll et returnAllFromIndex sur true.

Valeurs de retour

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

Nom

Type

Description

totalCount

long

Nombre de lignes correspondantes, obtenu via getTotalCount(). La valeur renvoyée dépend du paramètre trackTotalCount.

rows

List<Row>

Lignes renvoyées par la requête actuelle, obtenues via getRows(). Le nombre de lignes ne dépasse pas la valeur de limit.

nextToken

byte[]

Jeton pour la page suivante, obtenu via getNextToken(). Si la valeur n'est pas null, définissez-la comme token dans la requête suivante pour poursuivre la lecture.

isAllSuccess

boolean

Indique si toutes les partitions d'index ont été interrogées avec succès, obtenu via isAllSuccess(). Si cette valeur est false, la réponse contient des résultats partiels et totalCount peut être inférieur au nombre réel de correspondances.