Une requête de terme permet d'interroger les données correspondant exactement à la valeur spécifiée d'un champ. Les requêtes de terme s'apparentent aux requêtes basées sur des conditions de correspondance de chaîne. Si le type de la colonne est TEXT, Tablestore découpe la chaîne en jetons et utilise ces jetons pour faire correspondre le mot-clé. Une ligne satisfait aux conditions de la requête lorsqu'au moins un des jetons de la ligne correspond exactement au mot-clé. Le mot-clé utilisé pour faire correspondre la valeur de la colonne lors d'une requête de terme n'est pas découpé en jetons.
Prérequis
Initialisez une instance OTSClient. Pour plus d'informations, consultez Initialiser une instance OTSClient.
Créez une table de données et écrivez-y des données. Pour plus d'informations, consultez Créer des tables de données et Écrire des données.
Créez un index de recherche pour la table de données. Pour plus d'informations, consultez Créer un index de recherche.
Paramètres
|
Paramètre |
Description |
|
tableName |
Nom de la table de données. |
|
indexName |
Nom de l'index de recherche. |
|
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 correspondant aux conditions de la requête sans récupérer les données spécifiques, définissez le paramètre limit sur 0. |
|
queryType |
Type de requête. Définissez ce paramètre sur TableStore.QueryType.TERM_QUERY. |
|
fieldName |
Nom de la colonne à interroger. |
|
term |
Mot-clé utilisé pour faire correspondre la valeur de la colonne lors d'une requête de terme. Ce mot n'est pas découpé en jetons. Le mot entier sert à faire correspondre la valeur de la colonne. Si le type de la colonne est TEXT, Tablestore découpe la chaîne en jetons et utilise ces jetons pour faire correspondre le mot-clé. Une ligne satisfait aux conditions de la requête lorsqu'au moins un des jetons de la ligne correspond exactement au mot-clé. Par exemple, si la valeur d'une colonne de type TEXT dans une ligne est « tablestore is cool », la valeur peut être découpée en jetons « tablestore », « is » et « cool ». La ligne satisfait aux conditions de la requête si vous spécifiez « tablestore », « is » ou « cool » comme mot-clé pour faire correspondre la valeur de la colonne. |
|
getTotalCount |
Indique s'il faut renvoyer le nombre total de lignes correspondant 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 correspondant 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. |
|
columnToGet |
Indique s'il faut renvoyer toutes les colonnes de chaque ligne correspondant aux conditions de la requête. Vous pouvez configurer les champs returnType et returnNames pour ce paramètre.
|
Exemple
L'exemple de code suivant montre comment interroger les lignes dont la valeur de la colonne Col_Keyword correspond exactement à « hangzhou » :
/**
* Search the table for rows in which the value of Col_Keyword exactly matches "hangzhou".
*/
client.search({
tableName: TABLE_NAME,
indexName: INDEX_NAME,
searchQuery: {
offset: 0,
limit: 10, // To query only the number of rows that meet the query conditions without specific data, set the limit parameter to 0.
query: { // Set the query type to TableStore.QueryType.TERM_QUERY.
queryType: TableStore.QueryType.TERM_QUERY,
query: {
fieldName: "Col_Keyword",
term: "hangzhou"
}
},
getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. The default value of this parameter is false, which specifies that the total number of rows that meet the query conditions is not returned.
},
columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return specific columns, RETURN_ALL to return all columns, RETURN_ALL_FROM_INDEX to return all columns in the search index, or RETURN_NONE to return only the primary key columns.
returnType: TableStore.ColumnReturnType.RETURN_ALL
}
}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', JSON.stringify(data, null, 2));
});
FAQ
FAQ
Références
-
Les index de recherche prennent en charge les types de requêtes suivants : requête de terme, requête de termes, requête match all, requête de correspondance, requête de correspondance de phrase, requête de préfixe, requête de plage, requête avec caractère générique, requête booléenne, requête géographique, requête imbriquée, requête vectorielle, et requête exists. Sélectionnez un type de requête pour interroger les données en fonction de vos besoins métier.
Pour trier ou paginer les lignes correspondant aux conditions de la requête, utilisez la fonctionnalité de tri et de pagination. Pour plus d'informations, consultez Tri et pagination.
Pour regrouper l'ensemble de résultats en fonction d'une colonne spécifique, utilisez la fonctionnalité de regroupement (distinct). Ainsi, les données du type spécifié n'apparaissent qu'une seule fois dans les résultats de la requête. Pour plus d'informations, consultez Regroupement (distinct).
Pour analyser les données d'une table de données, par exemple pour obtenir les valeurs extrêmes, la somme et le nombre total de lignes, effectuez des opérations d'agrégation ou exécutez des instructions SQL. Pour plus d'informations, consultez Agrégation et Requête SQL.
Pour obtenir rapidement toutes les lignes correspondant aux conditions de la requête sans avoir besoin de les trier, appelez les opérations ParallelScan et ComputeSplits afin d'utiliser la fonctionnalité d'analyse parallèle. Pour plus d'informations, consultez Analyse parallèle.