Lors d'une requête avec caractères génériques, utilisez les caractères astérisque () et point d'interrogation (?) pour rechercher des données. L'astérisque () remplace une chaîne de longueur variable avant, après ou autour d'un terme de recherche. Le point d'interrogation (?) remplace un seul caractère à une position donnée. La chaîne peut commencer par un astérisque () ou un point d'interrogation (?). Par exemple, la recherche de la chaîne « tablee » correspond au terme « tablestore ».
Si le modèle de requête est *word* (équivalent à WHERE field_a LIKE '%word%' en SQL), privilégiez la fonctionnalité de requêtes avec caractères génériques basées sur les jetons pour optimiser les performances. Les performances restent stables quelle que soit la volumétrie des données.
Pour utiliser l'opérateur NOT LIKE, combinez WildcardQuery avec les requêtes must_not de BoolQuery.
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 une table 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 |
|
table_name |
Nom de la table de données. |
|
index_name |
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. |
|
get_total_count |
Indique s'il faut renvoyer le nombre total de lignes correspondant aux conditions de requête. La valeur par défaut est false, ce qui signifie que le nombre total n'est pas renvoyé. La définition du paramètre get_total_count sur true réduit les performances de la requête. |
|
query_type |
Type de requête. Définissez-le sur |
|
field_name |
Nom de la colonne à interroger. |
|
value |
Chaîne contenant des caractères génériques. Sa longueur ne doit pas dépasser 32 caractères. |
|
sort |
Méthode de tri des lignes dans la réponse. Pour plus d'informations, consultez la rubrique Tri et pagination. |
|
columns_to_get |
Indique s'il faut renvoyer toutes les colonnes de chaque ligne correspondant aux conditions de requête. Configurez return_type et return_names pour ce paramètre.
|
Exemples
L'exemple de code suivant montre comment interroger les données correspondant à la condition key* dans la colonne keyword d'une table.
$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::WILDCARD_QUERY,
'query' => array(
'field_name' => 'keyword',
'value' => 'key*'
)
),
'sort' => array(
array(
'field_sort' => array(
'field_name' => 'keyword',
'order' => SortOrderConst::SORT_ORDER_ASC
)
),
)
),
'columns_to_get' => array(
'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
'return_names' => array('keyword')
)
);
$response = $otsClient->search($request);
FAQ
Références
-
Lors de l'interrogation de données via un index de recherche, vous pouvez recourir aux méthodes suivantes : requête term, requête terms, requête match all, requête match, requête match phrase, requête prefix, requête range, requête wildcard, requête booléenne, requête geo, requête nested et requête exists. Combinez ces méthodes pour interroger vos données selon plusieurs dimensions en fonction de 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. Pour plus d'informations, consultez la rubrique Regroupement (distinct).
Pour analyser les données d'une table (valeurs extrêmes, somme, nombre total de lignes, etc.), 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.