La requête Exists, également appelée requête NULL ou requête de valeur NULL, permet de déterminer si la colonne d'une ligne existe dans des données clairsemées. Par exemple, vous pouvez rechercher les lignes dont la valeur de la colonne address n'est pas vide.
Pour exécuter une requête Exists sur une colonne Nested, utilisez une requête imbriquée (nested query).
Pour vérifier si une colonne contient des valeurs vides, combinez ExistsQuery avec mustNotQueries au sein d'une BoolQuery.
-
Le système considère qu'une colonne n'existe pas si l'une des conditions suivantes est remplie. Prenons l'exemple de la colonne city.
Si le type de la colonne city dans l'index de recherche est un type de base (tel que keyword) et que cette colonne est absente d'une ligne de la table de données, l'index de recherche considère que la colonne city n'existe pas.
Si le type de la colonne city dans l'index de recherche est un type de base (tel que keyword) et que la valeur de cette colonne est un tableau vide ("city" = "[]") dans la table de données, l'index de recherche considère que la colonne city n'existe pas.
Opérations API
Appelez l'opération Search ou ParallelScan et définissez le type de requête sur ExistsQuery pour effectuer une requête Exists.
Paramètres
|
Paramètre |
Description |
|
fieldName |
Nom de la colonne à interroger. |
|
query |
Type de requête. Définissez ce paramètre sur ExistsQuery. |
|
getTotalCount |
Indique s'il faut renvoyer le nombre total de lignes correspondant aux conditions de requête. La valeur par défaut est false, ce qui signifie que le nombre total de lignes n'est pas renvoyé. Si vous définissez ce paramètre sur true, les performances de la requête sont dégradées. |
|
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 correspondant aux conditions de requête. Configurez les champs returnAll et columns pour ce paramètre. 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, utilisez le champ 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 le champ returnAll sur true, toutes les colonnes sont renvoyées. |
Méthodes
Exécutez une requête Exists via la console Tablestore, l'interface CLI Tablestore ou les SDK Tablestore. Avant de commencer, assurez-vous d'avoir effectué 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 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 déjà une.
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 de 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 l'index de recherche.
FAQ
Références
L'index de recherche 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 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, 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 de lignes, utilisez 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, utilisez la fonctionnalité Parallel Scan.