Tous les produits
Search
Centre de documentation

Tablestore:Requête de correspondance

Dernière mise à jour :Sep 28, 2026

Une requête de correspondance effectue une recherche approximative sur les données d'une table. Tablestore utilise le tokenizer configuré pour découper les valeurs des colonnes de type Text et la chaîne de recherche en jetons, puis recherche ces jetons. Pour effectuer des recherches floues haute performance sur des colonnes de type Text utilisant une tokenisation floue, utilisez une requête de correspondance de phrase.

Scénarios

Une requête de correspondance permet de trouver des données contenant une expression spécifique. Associée à la tokenisation, elle permet l'indexation en texte intégral. Cette fonctionnalité s'avère utile dans divers scénarios tels que l'analyse de données, la recherche de contenu, la gestion des connaissances, l'analyse des réseaux sociaux, l'analyse des journaux, les systèmes de chat IA et les audits de conformité. Par exemple, vous pouvez filtrer rapidement les produits sur une plateforme de commerce électronique dont les titres, descriptions ou libellés contiennent les mots-clés saisis par un utilisateur. Vous pouvez également localiser rapidement des messages d'erreur ou des opérations anormales dans les journaux.

Présentation des fonctionnalités

Une requête de correspondance effectue une recherche approximative sur les données d'une table. Prenons l'exemple d'une ligne dont la colonne title de type Text a pour valeur « Hángzhōu Xīhú Fēngjǐngqū ». Si cette colonne utilise une tokenisation par mot unique et que la chaîne de recherche est « hú fēng », la ligne correspond à la requête.

Lorsque vous utilisez une requête de correspondance, vous devez spécifier la colonne à rechercher ainsi que la chaîne de recherche. Une ligne satisfait la condition de requête si l'un des jetons issus de la chaîne de recherche existe dans la colonne spécifiée.

Vous pouvez également configurer des paramètres tels que le nombre minimal de correspondances, le poids de la requête, les colonnes à renvoyer, l'inclusion ou non du nombre total de lignes correspondantes, ainsi que la méthode de tri du jeu de résultats.

Opérations API

Les opérations API pour une requête de correspondance sont Search ou ParallelScan. Le type de requête spécifique est MatchQuery.

Paramètres

Paramètre

Description

fieldName

La colonne sur laquelle effectuer la correspondance.

Une requête de correspondance peut s'appliquer aux colonnes de type Text.

text

La requête de recherche, c'est-à-dire la valeur à faire correspondre.

Pour les colonnes Text, la requête de recherche est divisée en plusieurs jetons selon le type d'analyseur lexical défini lors de la création de l'index de recherche. Si aucun analyseur n'a été configuré, l'analyse par mot unique est utilisée par défaut.

Par exemple, pour une colonne Text utilisant l'analyse par mot unique, la requête « this is » peut correspondre à « ..., this is tablestore », « is this tablestore », « tablestore is cool », « this » et « is ».

query

Définissez le type de requête sur matchQuery.

offset

La position de départ pour la requête.

limit

Le nombre maximal de résultats à renvoyer pour la requête.

Pour obtenir uniquement le nombre de lignes sans aucune donnée, définissez limit sur 0. Aucune ligne n'est alors renvoyée.

minimumShouldMatch

Le nombre minimal de correspondances.

Une ligne est renvoyée uniquement si la valeur de la colonne fieldName contient au moins le nombre minimal de jetons correspondants.

Remarque

minimumShouldMatch doit être utilisé avec l'opérateur logique OR.

operator

L'opérateur logique. La valeur par défaut est OR, ce qui signifie qu'une ligne satisfait la condition de requête si certains des jetons correspondent.

Si vous définissez operator sur AND, une ligne satisfait la condition de requête uniquement si tous les jetons sont présents dans la valeur de la colonne.

getTotalCount

Indique s'il faut renvoyer le nombre total de lignes correspondantes. La valeur par défaut est false, ce qui signifie que le nombre total n'est pas renvoyé.

Le renvoi du nombre total de lignes correspondantes peut affecter les performances de la requête.

weight

Le poids de la requête. Ce paramètre est utilisé pour le tri basé sur le score dans les scénarios d'index en texte intégral. Il spécifie le poids appliqué au calcul du score pour une colonne. Une valeur plus élevée entraîne un score plus élevé. La valeur doit être un nombre à virgule flottante positif.

Ce paramètre n'affecte pas le nombre de résultats renvoyés, mais uniquement leurs scores.

tableName

Le nom de la table de données.

indexName

Le nom de l'index de recherche.

columnsToGet

Indique s'il faut renvoyer toutes les colonnes. Cela inclut les paramètres returnAll et columns.

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

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

Notes

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

Utilisation

Vous pouvez exécuter une requête de correspondance (match query) via la console, l'interface de ligne de commande ou un SDK. Avant de commencer, effectuez les préparatifs suivants.

Utiliser la console

  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 le Search Index cible et cliquez sur Search dans la colonne Actions.

  3. Dans la boîte de dialogue Search, interrogez les données.

    1. Par défaut, toutes les colonnes sont renvoyées. Pour ne renvoyer que certaines colonnes, 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 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 d'index de type Text et cliquez sur Add.

    4. Définissez le type de requête pour le champ d'index sur Match Query (MatchQuery) et saisissez la valeur à rechercher.

    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 de ligne de commande

Exécutez la commande search dans l'interface de ligne de commande pour interroger les données à l'aide d'un index de recherche. Pour plus d'informations, consultez la rubrique Index de recherche.

  1. Exécutez la commande search pour interroger les données de la table à l'aide de l'index de recherche search_index et renvoyer toutes les colonnes indexées.

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

    {
        "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 un SDK

Vous pouvez exécuter une requête de correspondance à l'aide du SDK Java, du SDK Go, du SDK Python, du SDK Node.js, du SDK .NET ou du SDK PHP. Cette section utilise le SDK Java à titre d'exemple.

L'exemple suivant interroge les lignes dont le champ description contient le jeton tablestore ou durable et renvoie jusqu'à 10 lignes, le nombre total de lignes correspondantes ainsi que les scores de pertinence.

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 via 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