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 :
-
Utilisez un compte Alibaba Cloud ou un utilisateur RAM disposant des autorisations requises 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 stratégie RAM.
Si vous utilisez un SDK ou un outil en ligne de commande, créez une AccessKey pour votre compte Alibaba Cloud ou votre utilisateur RAM si vous n'en possédez pas.
Vous avez créé une table de données.
Un Index de recherche 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 à 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
Search Index prend en charge divers types de requêtes pour les interrogations de données multidimensionnelles, notamment la requête term, la requête terms, la requête match all, la requête de correspondance, la requête de correspondance de phrase, la requête range, la requête prefix, la requête suffix, la requête wildcard, la requête wildcard basée sur les jetons, la requête boolean, la requête geo, la requête nested, la recherche vectorielle, et la requête exists.
Lors de l'interrogation des données, vous pouvez trier et paginer l'ensemble de résultats ou effectuer un pliage (déduplication).
Pour l'analyse des données, telle que la recherche de la valeur maximale ou minimale, le calcul d'une somme ou le comptage des lignes, vous pouvez utiliser les fonctionnalités d'agrégation statistique ou de requête SQL.
Pour exporter rapidement des données indépendamment de l'ordre de l'ensemble de résultats, vous pouvez utiliser la fonctionnalité Parallel Scan.