Tous les produits
Search
Centre de documentation

Tablestore:Requête de correspondance

Dernière mise à jour :Aug 18, 2026

La requête de correspondance permet d'interroger les données d'une table en fonction de correspondances approximatives. Tablestore tokenize les valeurs du champ TEXT et le mot-clé utilisé pour la requête, selon le type d'analyseur spécifié. La recherche s'effectue ainsi sur la base des jetons générés. Nous vous recommandons d'utiliser la requête de correspondance de phrase pour les champs TEXT afin de garantir des performances élevées lors des recherches floues.

Scénarios

La requête de correspondance permet de rechercher des données contenant une phrase spécifique. Vous pouvez combiner la requête de correspondance de phrase avec la tokenisation pour effectuer une recherche en texte intégral dans divers scénarios, tels que l'analyse de big data, la recherche de contenu, la gestion des connaissances, l'analyse des réseaux sociaux, l'analyse des journaux, les systèmes de questions-réponses intelligents et la révision de conformité. Par exemple, vous pouvez rapidement interroger la liste des produits dont le titre, la description ou les tags contiennent le mot-clé spécifié sur les plateformes de commerce électronique, et localiser rapidement les messages d'erreur ou les opérations suspectes dans les journaux.

Fonctionnalités

La requête de correspondance permet d'interroger les données d'une table sur la base de correspondances approximatives. Par exemple, si la valeur de la colonne title de type TEXT est « Hangzhou West Lake Scenic Area » dans une ligne et qu'une tokenisation par mot unique est utilisée, la ligne satisfait aux conditions de la requête si vous définissez le mot-clé sur « Lake Scenic ».

Pour utiliser une requête de correspondance, spécifiez le nom du champ à interroger ainsi que le mot-clé. Si au moins un des jetons d'une ligne correspond aux jetons du mot-clé, la ligne satisfait aux conditions de la requête.

Lors de l'exécution d'une requête de correspondance, vous pouvez spécifier le nombre minimum de jetons correspondants contenus dans la valeur du champ, le poids à attribuer au champ interrogé pour calculer le score de pertinence des mots-clés basé sur BM25, les colonnes à renvoyer, l'inclusion ou non du nombre total de lignes satisfaisant aux conditions de la requête, ainsi que la méthode de tri des lignes renvoyées.

Opération API

Appelez l'opération Search ou ParallelScan et définissez le type de requête sur MatchQuery pour effectuer une requête de correspondance.

Paramètres

Paramètre

Description

fieldName

Nom du champ à faire correspondre.

La requête de correspondance s'applique aux champs TEXT.

text

Mot-clé utilisé pour faire correspondre la valeur du champ lors de l'exécution d'une requête de correspondance.

Si le champ à faire correspondre est un champ TEXT, le mot-clé est tokenisé en plusieurs jetons selon le type d'analyseur spécifié lors de la création de l'index de recherche. Si vous ne spécifiez pas le type d'analyseur lors de la création de l'index de recherche, une tokenisation par mot unique est effectuée.

Par exemple, si le champ à faire correspondre est un champ TEXT, que vous définissez le type d'analyseur sur la tokenisation par mot unique et que vous utilisez « this is » comme mot-clé de recherche, vous pouvez obtenir des résultats de requête tels que « ..., this is tablestore », « is this tablestore », « tablestore is cool », « this » et « is ».

query

Type de la requête. Définissez le paramètre query sur matchQuery.

offset

Position à partir de laquelle la requête actuelle commence.

limit

Nombre maximal de lignes que la requête actuelle doit renvoyer.

Pour interroger uniquement le nombre de lignes satisfaisant aux conditions de la requête sans récupérer les données spécifiques, définissez le paramètre limit sur 0.

minimumShouldMatch

Nombre minimum de jetons correspondants contenus dans la valeur du champ.

Une ligne n'est renvoyée que si la valeur du champ spécifié par le paramètre fieldName dans cette ligne contient au moins le nombre minimum de jetons correspondants.

Remarque

Vous devez utiliser le paramètre minimumShouldMatch conjointement avec l'opérateur logique OR.

operator

Opérateur logique. Par défaut, l'opérateur logique OR est utilisé, ce qui signifie qu'une ligne satisfait aux conditions de la requête lorsque la valeur de la colonne contient au moins le nombre minimum de jetons correspondants.

Si vous définissez le paramètre operator sur AND, la ligne ne satisfait aux conditions de la requête que si la valeur de la colonne contient tous les jetons correspondants.

getTotalCount

Indique s'il faut renvoyer le nombre total de lignes satisfaisant aux conditions de la requête. La valeur par défaut de ce paramètre est false, ce qui signifie que le nombre total de lignes satisfaisant aux conditions de la requête n'est pas renvoyé.

Si vous définissez ce paramètre sur true, les performances de la requête sont dégradées.

weight

Poids à attribuer au champ interrogé pour calculer le score de pertinence des mots-clés basé sur BM25. Ce paramètre est utilisé dans les scénarios de recherche en texte intégral. Plus le poids spécifié pour le champ interrogé est élevé, plus le score de pertinence des mots-clés basé sur BM25 pour ce champ est élevé. La valeur de ce paramètre est un nombre à virgule flottante positif.

Ce paramètre n'affecte pas le nombre de lignes renvoyées. En revanche, il influence les scores de pertinence des mots-clés basés sur BM25 des résultats de la requête.

tableName

Nom de la table de données.

indexName

Nom de l'index de recherche.

columnsToGet

Indique s'il faut renvoyer toutes les colonnes de chaque ligne satisfaisant aux conditions de la requête. Vous pouvez spécifier les champs returnAll et columns pour le paramètre columnsToGet.

La valeur par défaut du champ returnAll est false, ce qui signifie que toutes les colonnes ne sont pas renvoyées. Dans ce cas, vous pouvez utiliser le champ columns pour spécifier les colonnes à renvoyer. Si vous ne spécifiez pas les colonnes à renvoyer, seules les colonnes de clé primaire sont renvoyées.

Si vous définissez le champ returnAll sur true, toutes les colonnes sont renvoyées.

Remarques

Search Index fournit uniquement une notation de pertinence BM25 de base et ne prend pas en charge les modèles de pertinence personnalisés.

Méthodes

Utilisez la console Tablestore, l'interface CLI Tablestore ou les SDK Tablestore pour effectuer une requête de correspondance. Avant d'exécuter une requête de correspondance, assurez-vous d'avoir effectué les préparations suivantes :

Utiliser la console Tablestore

  1. Accédez à l'onglet Index Management.

    1. Connectez-vous à la console Table Store.

    2. Dans la barre de navigation supérieure, sélectionnez un groupe de ressources et une région.

    3. Sur la page Overview, cliquez sur le nom de l'instance ou sur Instance Management dans la colonne Actions.

    4. Sous l'onglet Instance Details, dans l'onglet Data Table List, cliquez sur le nom de la table de données ou sur Index Management dans la colonne Actions.

  2. Sous l'onglet Index Management, localisez l'index de recherche cible et cliquez sur Search dans la colonne Actions.

  3. Dans la boîte de dialogue Search, spécifiez les conditions de la requête.

    1. Par défaut, toutes les colonnes sont renvoyées. Pour renvoyer des colonnes spécifiques, désactivez l'option Retrieve All Columns et saisissez les noms des colonnes, séparés par des virgules.

      Remarque

      Par défaut, Table Store renvoie les colonnes de clé primaire de la table de données.

    2. Sélectionnez un opérateur logique : And, Or ou Not.

      Si vous sélectionnez And, la requête renvoie les données qui satisfont à toutes les conditions spécifiées. Si vous sélectionnez Or, la requête renvoie les données qui satisfont à au moins l'une des conditions spécifiées. Si vous sélectionnez Not, la requête renvoie les données qui ne satisfont pas aux conditions spécifiées.

    3. Sélectionnez un champ de type TEXT et cliquez sur Add.

    4. Définissez le paramètre Query Type sur MatchQuery(MatchQuery) et saisissez la valeur à interroger.

    5. Par défaut, le tri est désactivé. Pour trier les résultats selon un champ spécifique, activez l'option Enable Sorting, ajoutez le champ de tri et configurez l'ordre de tri.

    6. Par défaut, l'agrégation est désactivée. Pour effectuer une agrégation statistique sur un champ spécifique, activez l'option Enable Aggregation, ajoutez le champ d'agrégation et configurez les paramètres d'agrégation.

  4. Cliquez sur OK.

    Les résultats de la requête s'affichent sous l'onglet Index Management.

Utiliser l'interface CLI Tablestore

Utilisez l'interface CLI Tablestore pour exécuter la commande search afin d'interroger des données à l'aide d'index de recherche. Pour plus d'informations, consultez la rubrique Index de recherche.

  1. Exécutez la commande search pour utiliser l'index de recherche search_index afin d'interroger les données et de renvoyer toutes les colonnes indexées de chaque ligne satisfaisant aux conditions de la requête.

    search -n search_index --return_all_indexed
  2. Saisissez les conditions de la requête comme indiqué :

    {
        "Offset": -1,
        "Limit": 10,
        "Collapse": null,
        "Sort": null,
        "GetTotalCount": true,
        "Token": null,
        "Query": {
            "Name": "MatchQuery",
            "Query": {
                "FieldName": "col_text",
                "Text": "this is",
                "MinimumShouldMatch": 1
            }
        }
    }

Utiliser les SDK Tablestore

Effectuez une requête de correspondance à l'aide des SDK Tablestore suivants : SDK Tablestore pour Java, SDK Tablestore pour Go, SDK Tablestore pour Python, SDK Tablestore pour Node.js, SDK Tablestore pour .NET et SDK Tablestore pour PHP. Cet exemple utilise le SDK Tablestore pour Java.

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

MatchQuery matchQuery = new MatchQuery();
matchQuery.setFieldName("description");
matchQuery.setText("tablestore durable");

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

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 rubrique Mesure et facturation de Search Index.

FAQ

Références