Utilisez la fonctionnalité de collapse pour dédupliquer les résultats de recherche selon une colonne spécifique. Lorsque les résultats contiennent un grand volume de données d'un même type, le collapse n'affiche ces données qu'une seule fois afin de garantir la diversité des types de résultats.
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 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 Créer un index de recherche.
Notes
La fonctionnalité
collapseprend en charge la pagination uniquement viaoffsetetlimit. Elle ne prend pas en charge la pagination par token.Lorsque vous combinez l'agrégation statistique et
collapse, l'agrégation s'applique à l'ensemble de résultats avant le collapse.Le nombre total de groupes renvoyés est limité par les paramètres
offsetetlimit. La fonctionnalité renvoie au maximum 100 000 groupes.Le nombre total de lignes indiqué dans les résultats correspond au nombre de lignes correspondantes avant l'opération
collapse. Il est impossible de récupérer le nombre total de groupes après le collapse.
Paramètres
|
Paramètre |
Description |
|
table_name |
Nom de la table de données. |
|
index_name |
Nom de l'index de recherche. |
|
query |
Type de requête. Définissez ce paramètre sur n'importe quel type de requête pris en charge. |
|
collapse |
Effectue le collapse de l'ensemble de résultats selon la colonne spécifiée. Seules les colonnes INTEGER, FLOATING-POINT et KEYWORD sont prises en charge.
|
|
offset |
Position de départ de la requête. |
|
limit |
Nombre maximal de lignes à renvoyer. Définissez |
Exemples
L'exemple de code suivant montre comment utiliser un index de recherche pour obtenir jusqu'à 10 enregistrements de mots-clés uniques dans la table php_sdk_test et renvoyer les données des colonnes col1 et col2.
$request = array(
'table_name' => 'php_sdk_test',
'index_name' => 'php_sdk_test_search_index',
'search_query' => array(
'offset' => 0,
'limit' => 10,
'get_total_count' => true,
'collapse' => array(
'field_name' => 'keyword'
),
'query' => array(
'query_type' => QueryTypeConst::MATCH_ALL_QUERY
),
// 'sort' => array(// Specify a specific sorting method if required.
// array(
// 'field_sort' => array(
// 'field_name' => 'keyword',
// 'order' => SortOrderConst::SORT_ORDER_ASC
// )
// ),
// ),
'token' => null,
),
'columns_to_get' => array(
'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
'return_names' => array('col1', 'col2')
)
);
$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 : term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query et exists query. 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 répondent aux conditions de requête, utilisez la fonctionnalité de tri et de pagination. Pour plus d'informations, consultez Tri et pagination.
Si vous souhaitez effectuer le collapse de l'ensemble de résultats selon une colonne spécifique, utilisez la fonctionnalité de collapse (distinct). 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 de données, par exemple pour obtenir les valeurs extrêmes, la somme et le nombre total de lignes, effectuez des opérations d'agrégation ou exécutez des instructions SQL. Pour plus d'informations, consultez Agrégation et Requête SQL.
Si vous souhaitez obtenir rapidement toutes les lignes qui répondent aux conditions de requête sans avoir besoin de les trier, appelez les opérations ParallelScan et ComputeSplits pour utiliser la fonctionnalité de scan parallèle. Pour plus d'informations, consultez Scan parallèle.