Effectuez une requête de plage pour interroger les données situées dans une plage spécifiée. Si le champ à interroger est de type TEXT, ses valeurs sont tokenisées. Une ligne satisfait aux conditions de la requête si au moins l'un des tokens de cette ligne correspond à la plage de recherche.
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 des index de recherche.
Paramètres
|
Paramètre |
Description |
|
GetTotalCount |
Indique s'il faut renvoyer le nombre total de lignes correspondant aux conditions de la 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 seront dégradées. |
|
Query |
Type de requête. Pour utiliser une requête de plage, définissez ce paramètre sur RangeQuery. |
|
FieldName |
Nom du champ à faire correspondre. |
|
From |
Valeur de début de la plage de requête. |
|
To |
Valeur de fin de la plage de requête. |
|
IncludeLower |
Indique s'il faut inclure dans la réponse les lignes dont la valeur de la colonne cible est égale à la valeur du paramètre From. Ce paramètre est de type Boolean. |
|
IncludeUpper |
Indique s'il faut inclure dans la réponse les lignes dont la valeur de la colonne cible est égale à la valeur du paramètre To. Ce paramètre est de type Boolean. |
|
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 la requête. Vous pouvez configurer les paramètres ReturnAll, Columns et ReturnAllFromIndex. Par défaut,
Définissez |
Exemples
L'exemple de code suivant montre comment interroger les lignes dont la valeur de la colonne Long_type_col est supérieure ou égale à 0 et strictement inférieure à 6. Dans cet exemple, le nombre total de lignes correspondant aux conditions de la requête est renvoyé.
/// <summary>
/// Search the table for rows in which the value of the Long_type_col column is greater than or equal to 0 and less than 6.
/// </summary>
/// <param name="otsClient"></param>
public static void RangeQuery(OTSClient otsClient)
{
var searchQuery = new SearchQuery();
// Specify that the total number of rows that meet the query conditions is returned.
searchQuery.GetTotalCount = true;
var rangeQuery = new RangeQuery(Long_type_col, new ColumnValue(0), new ColumnValue(6));
// Specify that the rows in which the value of the column that you want to match is equal to the value of the From parameter are included in the response.
rangeQuery.IncludeLower = true;
searchQuery.Query = rangeQuery;
var request = new SearchRequest(TableName, IndexName, searchQuery);
// You can configure the ColumnsToGet parameter to specify the columns that you want to return, specify that all columns are returned, or specify that all columns in the search index are returned. If you do not configure this parameter, only the primary key columns are returned.
request.ColumnsToGet = new ColumnsToGet()
{
// Specify that all columns in the search index are returned.
ReturnAllFromIndex = true
// Specify the columns that you want to return.
//Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// Specify that all columns are returned.
//ReturnAll = true
};
var response = otsClient.Search(request);
Console.WriteLine("Total Count:" + response.TotalCount); // Specify that the total number of rows that meet the query conditions instead of the number of rows that are returned is displayed.
}
FAQ
Références
-
Lorsque vous utilisez un index de recherche pour interroger des données, vous pouvez recourir aux méthodes de requête suivantes : requête term, requête terms, requête match all, requête match, requête match phrase, requête prefix, requête de plage, requête wildcard, requête booléenne, requête geo, requête nested et requête exists. Vous pouvez utiliser différentes méthodes de requête pour interroger les données selon plusieurs dimensions, en fonction de vos besoins métier.
Vous pouvez trier ou paginer les lignes correspondant aux conditions de la requête à l'aide des fonctionnalités de tri et de pagination. Pour plus d'informations, consultez Tri et pagination.
Vous pouvez utiliser la fonctionnalité de collapse (distinct) pour regrouper l'ensemble des résultats en fonction d'une colonne spécifique. 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 Collapse (distinct).
Si vous souhaitez analyser les données d'une table, vous pouvez utiliser la fonctionnalité d'agrégation de l'opération Search ou exécuter des instructions SQL. Par exemple, vous pouvez obtenir les valeurs minimales et maximales, la somme ainsi que le nombre total de lignes. Pour plus d'informations, consultez Agrégation et Requête SQL.
Si vous souhaitez obtenir toutes les lignes correspondant aux conditions de la requête sans avoir besoin de les trier, vous pouvez appeler les opérations ParallelScan et ComputeSplits pour utiliser la fonctionnalité de balayage parallèle. Pour plus d'informations, consultez Balayage parallèle.