Une requête par termes est similaire à une requête par terme, mais prend en charge plusieurs mots-clés. Une ligne de données est renvoyée si au moins l'un des mots-clés correspond exactement à la valeur du champ. Les requêtes par termes s'utilisent comme l'opérateur IN dans les instructions SQL.
Prérequis
Initialisez une instance OTSClient. Pour plus d'informations, consultez la rubrique Initialiser une instance OTSClient.
Créez une table de données et écrivez-y des données. Pour plus d'informations, consultez les rubriques 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 la rubrique 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 de départ de la requête actuelle. |
|
limit |
Nombre maximal de lignes à renvoyer par la requête actuelle. Pour interroger uniquement le nombre de lignes correspondant aux conditions de requête sans récupérer les données, définissez le paramètre limit sur 0. |
|
queryType |
Type de requête. Pour utiliser une requête par termes, définissez ce paramètre sur TableStore.QueryType.TERMS_QUERY. |
|
fieldName |
Nom du champ à faire correspondre. |
|
terms |
Mots-clés utilisés pour faire correspondre la valeur du champ lors d'une requête par termes. Une ligne de données est renvoyée si au moins l'un des mots-clés correspond exactement à la valeur du champ. |
|
getTotalCount |
Indique s'il faut renvoyer le nombre total de lignes correspondant aux conditions de requête. Valeur par défaut : false. La définition de ce paramètre sur true réduit les performances de la requête. |
|
columnToGet |
Indique s'il faut renvoyer toutes les colonnes de chaque ligne correspondant aux conditions de requête. Vous pouvez configurer returnType et returnNames pour ce paramètre.
|
Exemples
L'exemple de code suivant montre comment interroger les lignes dont la valeur de la colonne Col_Keyword correspond exactement à « hangzhou » ou « shanghai » :
/**
* Search the table for rows in which the value of the Col_Keyword column exactly matches "hangzhou" or "shanghai".
* TermsQuery supports multiple terms. You can retrieve query results that match at least one of the terms.
*/
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.TERMS_QUERY.
queryType: TableStore.QueryType.TERMS_QUERY,
query: {
fieldName: "Col_Keyword",
terms: ["hangzhou", "shanghai"]
}
},
getTotalCount: true // Specify whether to return the total number of rows that meet the query conditions. Default value: false.
},
columnToGet: { // Specify the columns that you want to return. You can set the parameter to RETURN_SPECIFIED to return the specified 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ête suivants : requête par terme, requête par termes, requête MatchAll, requête Match, requête MatchPhrase, requête par préfixe, requête par plage, requête par 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 adapté à vos besoins métier.
Pour trier ou paginer les lignes correspondant aux conditions de requête, utilisez la fonctionnalité de tri et de pagination. Pour plus d'informations, consultez la rubrique 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 la rubrique 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 les rubriques Agrégation et Requête SQL.
Pour obtenir rapidement toutes les lignes correspondant aux conditions de requête sans tri, appelez les opérations ParallelScan et ComputeSplits afin d'utiliser la fonctionnalité d'analyse parallèle. Pour plus d'informations, consultez la rubrique Analyse parallèle.