Utilisez la requête par terme pour trouver les lignes dont un champ spécifique correspond exactement à un mot-clé. Le mot-clé n'est pas tokenisé. Pour les champs de type TEXT, Tablestore tokenise la valeur du champ et compare le mot-clé à chaque jeton : une ligne est retenue si l'un des jetons correspond exactement.
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 |
|
FieldName |
Nom du champ à faire correspondre. |
|
Term |
Mot-clé à faire correspondre aux valeurs du champ. Le mot-clé n'est pas tokenisé : il est comparé tel quel à la valeur complète du champ ou, pour les champs de type TEXT, à chaque jeton. Pour les champs de type TEXT, Tablestore tokenise la valeur du champ et vérifie si l'un des jetons correspond exactement au mot-clé. Par exemple, si un champ TEXT contient « tablestore is cool », la valeur est tokenisée en « tablestore », « is » et « cool ». Spécifier l'un de ces termes comme mot-clé permet de retourner la ligne. |
|
GetTotalCount |
Indique s'il faut retourner le nombre total de lignes correspondantes. La valeur par défaut est |
|
Query |
Type de requête. Définissez-le sur |
|
TableName |
Nom de la table de données. |
|
IndexName |
Nom de l'index de recherche. |
|
ColumnsToGet |
Spécifie les colonnes à retourner pour les lignes correspondantes. Configurez Par défaut,
Définissez |
Exemples
L'exemple suivant interroge les lignes dont le champ Keyword_type_col correspond exactement à SearchIndex.
/// <summary>
/// Query rows where Keyword_type_col exactly matches "SearchIndex".
/// </summary>
/// <param name="otsClient"></param>
public static void TermQuery(OTSClient otsClient)
{
var searchQuery = new SearchQuery();
// Return the total number of matching rows.
searchQuery.GetTotalCount = true;
// Match rows where Keyword_type_col equals "SearchIndex".
searchQuery.Query = new TermQuery("Keyword_type_col", new ColumnValue("SearchIndex"));
var request = new SearchRequest(TableName, IndexName, searchQuery);
// Return all columns from the search index.
// To return specific columns: Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
// To return all columns from the data table: ReturnAll = true
request.ColumnsToGet = new ColumnsToGet()
{
ReturnAllFromIndex = true
};
var response = otsClient.Search(request);
// Check NextToken for paginated results.
}
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 par terme, requête par termes, requête match all, requête match, requête match phrase, 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 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 qui satisfont aux conditions de la requête en utilisant les 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 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 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 qui satisfont 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.