Utilisez le SDK Tablestore pour Go afin de réduire les résultats de requête selon un champ et de renvoyer une ligne pour chaque valeur de champ distincte.
Prérequis
Installez le SDK Tablestore pour Go et initialisez un client.
Description
La réduction peut être combinée avec n'importe quel type de requête. Elle regroupe les résultats de requête par valeur de champ et renvoie la première ligne triée de chaque groupe. TotalCount reste égal au nombre de lignes correspondantes avant la réduction, et il n'est pas possible d'obtenir le nombre total de groupes après la réduction. Le tri et l'agrégation doivent être activés pour le champ de réduction. Les champs Long, Double et Keyword sont pris en charge, mais les champs de type tableau ne le sont pas.
Une requête de réduction prend uniquement en charge la pagination basée sur Offset et Limit, et ne supporte pas la pagination par jeton. La somme Offset + Limit ne peut pas dépasser 100 000, ce qui permet de renvoyer jusqu'à 100 000 groupes.
Si l'agrégation et la réduction sont utilisées conjointement, l'agrégation est calculée sur l'ensemble des résultats avant la réduction.
searchQuery := search.NewSearchQuery().
SetQuery(&search.MatchAllQuery{}).
SetCollapse(&search.Collapse{FieldName: "category"}).
SetGetTotalCount(true)
response, err := client.Search(&tablestore.SearchRequest{
TableName: "example_table",
IndexName: "example_index",
SearchQuery: searchQuery,
})
if err != nil {
log.Fatal(err)
}
fmt.Println(response.TotalCount)
fmt.Println(response.Rows)
Paramètres
|
Nom |
Type |
Description |
|
FieldName (obligatoire) |
string |
Le champ utilisé pour réduire les résultats. |
Réponse
|
Nom |
Type |
Description |
|
TotalCount |
int64 |
Le nombre total de lignes correspondantes. La valeur dépend de SetGetTotalCount. |
|
Rows |
[]*tablestore.Row |
Les lignes renvoyées par la requête actuelle. Le nombre ne dépasse pas la valeur spécifiée par SetLimit. |
|
SearchHits |
[]*tablestore.SearchHit |
Les résultats de recherche. Lisez ce champ lorsque vous utilisez la mise en surbrillance, les hits internes imbriqués ou les scores de pertinence. |
|
IsAllSuccess |
bool |
Indique si toutes les partitions d'index ont été interrogées. Si la valeur est false, des résultats partiels sont renvoyés et TotalCount peut être inférieur au nombre réel de lignes correspondantes. |
|
AggregationResults |
search.AggregationResults |
Les résultats d'agrégation. |
|
GroupByResults |
search.GroupByResults |
Les résultats de regroupement. |