Exécutez une requête de plage pour interroger les données situées dans la plage spécifiée. Si le type du champ à interroger est TEXT, les valeurs du champ sont tokenisées. Une ligne satisfait aux conditions de la requête lorsqu'au moins un des jetons de la ligne correspond à la plage de la requête.
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 si le nombre total de lignes satisfaisant aux conditions de la requête doit être renvoyé. 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 se dégradent. |
|
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 requête. |
|
To |
Valeur de fin de la requête. |
|
IncludeLower |
Indique si les lignes dont la valeur de la colonne cible est égale à la valeur du paramètre From doivent être incluses dans la réponse. Ce paramètre est de type Boolean. |
|
IncludeUpper |
Indique si les lignes dont la valeur de la colonne cible est égale à la valeur du paramètre To doivent être incluses dans la réponse. 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 satisfaisant 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 inférieure à 6. Dans cet exemple, le nombre total de lignes satisfaisant 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 des données selon plusieurs dimensions en fonction de vos besoins métier.
Vous pouvez trier ou paginer les lignes satisfaisant 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 regroupement (distinct) pour regrouper l'ensemble de 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 Regroupement (distinct).
Si vous souhaitez analyser les données d'une table de données, 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 et le nombre total de lignes. Pour plus d'informations, consultez Agrégation et Requête SQL.
Si vous souhaitez obtenir toutes les lignes satisfaisant 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é d'analyse parallèle. Pour plus d'informations, consultez Analyse parallèle.