Tous les produits
Search
Centre de documentation

Tablestore:Term query

Dernière mise à jour :Aug 08, 2026

Une requête par terme avec le SDK Tablestore pour Java identifie les valeurs de champ ou les jetons correspondant exactement au terme de recherche et renvoie les lignes correspondantes ou leur nombre total.

Prérequis

Installez le SDK Tablestore pour Java et initialisez le client.

Description de la fonctionnalité

Une requête par terme identifie le contenu d'un champ spécifié qui correspond exactement au terme de recherche. Pour les champs non textuels tels que les champs Keyword et Long, la valeur entière du champ doit correspondre exactement au terme de recherche. Pour un champ Text (voir Types de chaîne), la ligne correspond si l'un des jetons produits par l'analyseur correspond exactement au terme de recherche. Le terme de recherche lui-même n'est pas tokenisé.

Remarque

Les jetons générés pour un champ Text peuvent varier en fonction de la configuration de l'analyseur, des mises à jour des algorithmes et de l'usage linguistique. Évitez d'utiliser une requête par terme pour faire correspondre la chaîne d'origine entière d'un champ Text. Utilisez plutôt une colonne virtuelle pour mapper le champ source vers le type Keyword, puis interrogez la colonne virtuelle.

Pour appeler search, définissez le type de requête sur TermQuery et utilisez SearchQuery pour configurer le nombre de lignes renvoyées, le suivi du nombre total et d'autres comportements de requête courants.

SearchResponse search(SearchRequest request)

L'exemple suivant interroge les lignes dont la valeur du champ category correspond exactement à books et renvoie jusqu'à 10 lignes ainsi que le nombre total de lignes correspondantes.

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

TermQuery termQuery = new TermQuery();
termQuery.setFieldName("category");
termQuery.setTerm(ColumnValue.fromString("books"));

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(termQuery);
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

Demande de recherche

request est un objet SearchRequest qui contient les paramètres suivants.

Nom

Type

Description

tableName (obligatoire)

String

Nom de la table.

indexName (obligatoire)

String

Nom de l'index de recherche.

searchQuery (obligatoire)

SearchQuery

Condition de requête et paramètres de requête courants.

columnsToGet (facultatif)

SearchRequest.ColumnsToGet

Paramètres des colonnes renvoyées. Si vous omettez ce paramètre, 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 -1, ce qui signifie qu'aucun délai d'expiration distinct n'est défini pour la requête.

routingValues (facultatif)

List<PrimaryKey>

Valeurs de clé primaire pour les champs de routage personnalisé. Omettez ce paramètre si l'index n'utilise pas le routage personnalisé.

Paramètres de requête

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 TermQuery pour une requête par terme.

offset (facultatif)

Integer

Position de départ de la requête.

limit (facultatif)

Integer

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

highlight (facultatif)

Highlight

Paramètres de résumé et de mise en surbrillance pour les champs Text. Pour plus de détails sur la configuration, voir Résumé et mise en surbrillance.

collapse (facultatif)

Collapse

Paramètres de regroupement des résultats, qui permettent de dédupliquer les résultats selon un champ spécifié. Pour plus de détails sur la configuration, voir Regrouper les résultats de requête.

sort (facultatif)

Sort

Ordre de tri des résultats. Pour plus de détails sur la configuration, voir Trier et paginer les résultats.

trackTotalCount (facultatif)

int

Nombre maximal attendu 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 appliqué aux résultats de query.

aggregationList (facultatif)

List<Aggregation>

Paramètres d'agrégation. Pour plus de détails sur la configuration, voir Agrégation.

groupByList (facultatif)

List<GroupBy>

Paramètres de regroupement. Pour plus de détails sur la configuration, voir Agrégation.

token (facultatif)

byte[]

Jeton de pagination. Définissez ce paramètre sur la valeur nextToken de la réponse précédente pour continuer à lire les lignes. Lorsque vous définissez token, le SDK efface sort car le jeton contient déjà les conditions de tri.

Condition de requête

request.searchQuery.query est un objet TermQuery qui contient les paramètres suivants.

Nom

Type

Description

fieldName (obligatoire)

String

Nom du champ indexé à interroger.

term (obligatoire)

ColumnValue

Terme de recherche. Pour un champ Text, la valeur entière est utilisée comme un seul terme et n'est pas tokenisée.

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 la contribution de la condition de requête au score de pertinence BM25. Ce paramètre n'affecte ni la correspondance ni le nombre de lignes renvoyées. Il influence l'ordre des résultats uniquement lorsque ScoreSort est utilisé pour trier selon le score de pertinence. Valeur par défaut : 1.0.

Colonnes renvoyées

request.columnsToGet est un objet SearchRequest.ColumnsToGet qui contient les paramètres suivants.

Nom

Type

Description

columns (facultatif)

List<String>

Colonnes d'attribut à renvoyer. Définissez ce paramètre uniquement si returnAll et returnAllFromIndex ont tous deux la valeur false. Si vous omettez ce paramètre, seules les colonnes de clé primaire sont renvoyées.

returnAll (facultatif)

boolean

Indique s'il faut renvoyer toutes les colonnes d'attribut de la table. Valeur par défaut : false.

returnAllFromIndex (facultatif)

boolean

Indique s'il faut renvoyer toutes les colonnes d'attribut indexées. Valeur par défaut : false. Ce paramètre et returnAll ne peuvent pas avoir simultanément la valeur true.

Valeurs de retour

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

Nom

Type

Description

totalCount

long

Nombre de lignes correspondantes. Appelez getTotalCount() pour obtenir la valeur. La valeur renvoyée dépend du paramètre trackTotalCount.

rows

List<Row>

Lignes renvoyées par cette requête. Appelez getRows() pour obtenir la valeur. Le nombre de lignes ne dépasse pas limit.

searchHits

List<SearchHit>

Résultats de la requête. Appelez getSearchHits() pour obtenir la valeur. Si highlight est configuré, ce champ contient les données de ligne ainsi que les résultats de résumé et de mise en surbrillance.

nextToken

byte[]

Jeton de la page suivante. Appelez getNextToken() pour obtenir la valeur. Si la valeur n'est pas null, définissez-la comme token dans la requête suivante pour continuer à lire les lignes.

isAllSuccess

boolean

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