Tous les produits
Search
Centre de documentation

Tablestore:Requête par terme

Dernière mise à jour :Aug 18, 2026

Une requête par terme renvoie les lignes dont les valeurs de champ correspondent exactement au mot-clé spécifié. Le mot-clé n'est pas analysé : Tablestore le compare tel quel aux valeurs indexées. Pour les colonnes TEXT, Tablestore fait correspondre le mot-clé à chaque jeton de la colonne ; une ligne correspond si au moins un jeton est égal au mot-clé.

Prérequis

Avertissement : N'utilisez pas de requête par terme sur des colonnes TEXT si vous souhaitez faire correspondre la chaîne d'origine. Tablestore tokenize les valeurs des colonnes TEXT lors de l'indexation, de sorte que les jetons stockés peuvent ne pas correspondre à votre chaîne d'origine. Utilisez plutôt une requête de correspondance (match query) lorsque vous interrogez des colonnes TEXT par leur contenu complet.

Paramètres

Paramètre

Description

table_name

Nom de la table de données.

index_name

Nom de l'index de recherche.

offset

Position de départ dans l'ensemble de résultats pour la requête actuelle.

limit

Nombre maximal de lignes à renvoyer. Pour obtenir uniquement le nombre de lignes sans renvoyer les données des lignes, définissez ce paramètre sur 0.

get_total_count

Indique s'il faut renvoyer le nombre total de lignes correspondant à la requête. Valeur par défaut : false.

La définition de ce paramètre sur true réduit les performances de la requête.

query_type

Type de requête. Définissez cette valeur sur QueryTypeConst::TERM_QUERY pour une requête par terme.

field_name

Nom du champ à interroger.

term

Mot-clé à faire correspondre avec les valeurs de champ. Le mot-clé n'est pas tokenisé : Tablestore l'utilise tel quel pour la comparaison.

Pour les colonnes TEXT, Tablestore tokenize la valeur de la colonne au moment de l'indexation et vérifie si un jeton correspond exactement au mot-clé. Par exemple, la valeur TEXT "tablestore is cool" est tokenisée en "tablestore", "is" et "cool". Une requête pour "tablestore" renvoie cette ligne ; une requête pour "tablestore is cool" ne renvoie aucun résultat car cette chaîne complète n'est pas un jeton.

sort

Ordre de tri des lignes renvoyées. Pour plus d'informations, consultez la rubrique Tri et pagination.

columns_to_get

Colonnes à renvoyer pour chaque ligne correspondante. Configurez return_type et return_names pour ce paramètre.

  • Si vous définissez return_type sur ColumnReturnTypeConst::RETURN_SPECIFIED, vous pouvez utiliser return_names pour spécifier les colonnes à renvoyer.

  • Si vous définissez le paramètre return_type sur ColumnReturnTypeConst::RETURN_ALL, toutes les colonnes sont renvoyées.

  • Si vous définissez return_type sur ColumnReturnTypeConst::RETURN_ALL_FROM_INDEX, toutes les colonnes de l'index de recherche sont renvoyées.

  • Si vous définissez le paramètre return_type sur ColumnReturnTypeConst::RETURN_NONE, seules les colonnes de clé primaire sont renvoyées.

Exemples

L'exemple suivant interroge toutes les lignes où la colonne keyword correspond exactement au terme "keyword".

$request = array(
    'table_name' => 'php_sdk_test',
    'index_name' => 'php_sdk_test_search_index',
    'search_query' => array(
        'offset' => 0,
        'limit' => 2,
        'get_total_count' => true,
        'query' => array(
            'query_type' => QueryTypeConst::TERM_QUERY,
            'query' => array(
                'field_name' => 'keyword',
                'term' => 'keyword'
            )
        ),
        'sort' => array(
            array(
                'field_sort' => array(
                    'field_name' => 'keyword',
                    'order' => SortOrderConst::SORT_ORDER_ASC
                )
            ),
        )
    ),
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_ALL,
        'return_names' => array('keyword', 'long')
    )
);
$response = $otsClient->search($request);

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 de correspondance, requête de correspondance de phrase, requête de préfixe, requête de plage, requête avec caractères génériques, 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 des données selon plusieurs dimensions en fonction de vos besoins métier.

    Si vous souhaitez trier ou paginer les lignes qui satisfont aux conditions de requête, vous pouvez utiliser la fonctionnalité de tri et de pagination. Pour plus d'informations, consultez la rubrique Tri et pagination.

    Si vous souhaitez regrouper l'ensemble de résultats en fonction d'une colonne spécifique, vous pouvez utiliser la fonctionnalité de regroupement (distinct). De cette manière, 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).

  • Si vous souhaitez 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, vous pouvez effectuer des opérations d'agrégation ou exécuter des instructions SQL. Pour plus d'informations, consultez les rubriques Agrégation et Requête SQL.

  • Si vous souhaitez obtenir rapidement toutes les lignes qui satisfont aux conditions de 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 la rubrique Analyse parallèle.