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 Remarque
|
|
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 |
|
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
Si vous définissez |
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.
-
Utilisez un compte Alibaba Cloud ou un utilisateur RAM disposant des autorisations nécessaires pour les opérations Table Store. Pour accorder des autorisations à un utilisateur RAM, consultez la rubrique Accorder des autorisations à un utilisateur RAM à l'aide d'une politique RAM.
Si vous utilisez un SDK ou un outil en ligne de commande, créez une clé AccessKey pour votre compte Alibaba Cloud ou votre utilisateur RAM si vous n'en possédez pas déjà une.
Vous avez créé une table de données.
Un Search Index a été créé pour la table de données.
Si vous utilisez un SDK, initialisez le client Tablestore.
Si vous utilisez l'outil en ligne de commande, téléchargez et démarrez l'outil, puis configurez la connexion à votre instance et sélectionnez la table cible. Pour plus d'informations, consultez les rubriques Télécharger l'outil en ligne de commande, Démarrer l'outil et configurer les informations de connexion et Opérations sur les tables de données.
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
Search Index prend en charge divers types de requêtes pour l'interrogation multidimensionnelle des données, notamment la requête par terme, la requête par termes, la requête match all, la requête match, la requête phrase match, la requête range, la requête prefix, la requête suffix, la requête wildcard, la requête token-based wildcard, la requête boolean, la requête geo, la requête nested, la recherche vectorielle ainsi que la requête exists.
Lors de l'interrogation des données, vous pouvez trier et paginer l'ensemble des résultats ou effectuer une opération de collapsing (déduplication).
Pour l'analyse des données, telle que la recherche de valeurs maximales ou minimales, le calcul d'une somme ou le comptage de lignes, utilisez les fonctionnalités d'agrégation statistique ou de requête SQL.
Pour exporter rapidement les données indépendamment de l'ordre de l'ensemble de résultats, utilisez la fonctionnalité Parallel Scan.