Tous les produits
Search
Centre de documentation

Tablestore:Requête de correspondance d'expression

Dernière mise à jour :Aug 08, 2026

Le SDK Tablestore pour Java utilise la requête de correspondance d'expression pour rechercher dans un champ Text en se basant sur l'ordre et la position des jetons. Elle renvoie les lignes satisfaisant la condition de phrase, accompagnées de leur score de pertinence.

Prérequis

Installez le SDK Tablestore pour Java et initialisez le client.

Description de la fonctionnalité

La requête de correspondance d'expression recherche les jetons apparaissant consécutivement, dans l'ordre et aux positions spécifiés, au sein d'un champ Text. Pour plus d'informations sur ce type de champ, consultez Types de chaîne. L'analyseur configuré lors de la création de l'index de recherche analyse la valeur du champ et le texte de la requête. À défaut d'analyseur configuré, la tokenisation par mot unique s'applique par défaut.

Cette requête exige que tous les jetons recherchés apparaissent dans le même ordre et à des positions adjacentes. Par exemple, le texte de requête this is correspond à this is tablestore, mais pas à this table is ni à is this a table. Une requête de correspondance vérifie uniquement la présence des jetons, sans exiger qu'ils soient adjacents ou dans l'ordre de la requête.

Si un champ Text utilise l'analyseur flou, la requête de correspondance d'expression permet une correspondance floue similaire à celle d'une requête avec caractères génériques, mais avec une latence réduite.

L'exemple suivant interroge les lignes dont le champ description contient consécutivement les jetons tablestore et durable dans cet ordre. La requête renvoie jusqu'à 10 lignes, le nombre total de lignes correspondantes et les scores de pertinence.

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

MatchPhraseQuery matchPhraseQuery = new MatchPhraseQuery();
matchPhraseQuery.setFieldName("description");
matchPhraseQuery.setText("tablestore durable");

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(matchPhraseQuery);
searchQuery.setSort(new Sort(Collections.singletonList(new ScoreSort())));
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);
for (SearchHit hit : response.getSearchHits()) {
    System.out.println(hit.getRow());
    System.out.println(hit.getScore());
}

Paramètres

Requête de recherche

L'objet request de type SearchRequest 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 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 en millisecondes. La valeur par défaut est -1 (aucun délai d'expiration spécifique).


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

L'objet request.searchQuery de type SearchQuery contient les paramètres suivants.


Nom


Type


Description


query (obligatoire)


Query


Condition de requête. Définissez ce paramètre sur MatchPhraseQuery pour effectuer une requête de correspondance d'expression.


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 les détails de configuration et les limites, consultez Résumé et mise en surbrillance.


collapse (facultatif)


Collapse


Paramètres de réduction (collapse) des champs, qui dédupliquent les résultats selon un champ spécifié. Pour les détails de configuration, consultez Réduction des résultats de requête.


sort (facultatif)


Sort


Ordre de tri des résultats. Pour les détails de configuration, consultez Tri et pagination des résultats.


trackTotalCount (facultatif)


int


Nombre maximal attendu de lignes correspondantes à compter. La valeur par défaut est TRACK_TOTAL_COUNT_DISABLED (comptage désactivé). Définissez ce paramètre sur TRACK_TOTAL_COUNT pour compter toutes les lignes correspondantes. Une valeur plus petite 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 les détails de configuration, consultez Agrégation.


groupByList (facultatif)


List<GroupBy>


Paramètres de regroupement. Pour les détails de configuration, consultez 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 poursuivre la lecture des lignes. Lorsque vous définissez token, le SDK efface sort car le jeton contient déjà les conditions de tri.

Condition de correspondance d'expression

L'objet request.searchQuery.query de type MatchPhraseQuery contient les paramètres suivants.


Nom


Type


Description


fieldName (obligatoire)


String


Nom du champ d'index Text à interroger.


text (obligatoire)


String


Texte de la requête. L'analyseur de champ analyse le texte et la correspondance s'effectue selon l'ordre et la position des jetons.


weight (facultatif)


float


Poids de la requête. La valeur par défaut est 1.0 et doit être un nombre à virgule flottante positif. Une valeur plus élevée augmente la contribution de cette requête au score de pertinence sans modifier la portée de la correspondance.

Colonnes renvoyées

L'objet request.columnsToGet de type SearchRequest.ColumnsToGet 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 valent tous deux 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. 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. Ce paramètre et returnAll ne peuvent pas valoir true simultanément.

Valeurs de retour

Réponse de la requête

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. Appelez getTotalCount() pour obtenir la valeur. La valeur renvoyée dépend du paramètre trackTotalCount.


rows


List<Row>


Lignes renvoyées dans la réponse actuelle. Appelez getRows() pour obtenir la valeur. Le nombre de lignes ne dépasse pas limit.


searchHits


List<SearchHit>


Résultats de la requête (hits). Appelez getSearchHits() pour obtenir la valeur. Ce champ contient les scores de pertinence 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 poursuivre la lecture des 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.

Résultat de requête

Chaque élément response.searchHits[] est un objet SearchHit contenant les principaux champs suivants.


Nom


Type


Description


row


Row


Ligne correspondante. Appelez getRow() pour obtenir la valeur.


score


Double


Score de pertinence. Appelez getScore() pour obtenir la valeur. Lorsque ScoreSort est utilisé, ce champ contient le score réel. Les jetons correspondants et weight influencent le score.


highlightResultItem


HighlightResultItem


Résultat de résumé et de mise en surbrillance. Appelez getHighlightResultItem() pour obtenir la valeur.