Manipuler les buckets
Les buckets (ou résultats d’agrégation) d’une recherche peuvent être organisés en utilisant l’API JS.
Abonnement
La première étape, avant de pouvoir manipuler ces buckets, consiste en l’abonnement à la récupération de buckets à partir de FlowerDocs Core :
soit par recherche en fournissant
searchId
l’identifiant de la recherche concernée :var bucketAPI = JSAPI.get().getHelperFactory().getBucketAPI(); bucketAPI.register(searchId, function(buckets, callback){ callback.onProcessed(buckets); });
soit pour toutes les recherches :
var bucketAPI = JSAPI.get().getHelperFactory().getBucketAPI(); bucketAPI.register(, function(buckets, callback){ callback.onProcessed(buckets); });
L’abonnement enregistré est appelé avec deux variables :
- Le tableau
buckets
contient l’ensemble des buckets d’un même niveau - Le
callback
fourni en entrée de l’abonnement doit être appelé avec un tableau de bucket
Modification d’un bucket
L’API JS permet de modifier les buckets résolus par FlowerDocs Core en exposant les méthodes suivantes :
Fonction | Description |
---|---|
getName() | Retourne le nom |
setName(name) | Modifie le nom |
getCount() | Retourne le nombre de composants contenus dans le bucket (somme des buckets fils) |
setCount(count) | Modifie le nombre affiché de composants contenus dans le bucket |
getLevel() | Retourne le niveau de bucket |
hasChildren() | Détermine si le bucket contient des buckets fils |
getChildren() | Récupère les buckets fils |
hasParent() | Détermine si le bucket a un bucket parent |
getParents() | Récupère les buckets parents (tous les niveaux parents) |
getRequest() | Récupère la requête exécutée pour déterminer le contenu du bucket |
setRequest(request) | Modifie la requête exécutée pour déterminer le contenu du bucket |
Masquer un bucket
La fonction setSkipDisplay(skip)
est également exposée sur l’objet Bucket
permettant de masquer un bucket et n’afficher que ses fils.
Récupération des buckets après résolution
Il est possible de récupérer les buckets d’une recherche après résolution de la façon suivante :
var bucketAPI = JSAPI.get().getHelperFactory().getBucketAPI();
bucketAPI.registerForResolved("searchId", function(buckets){
for(i in buckets){
var bucket = buckets[i];
console.info(bucket.getName()+ " has been resolved, count=" +bucket.getCount());
}
callback.onProcessed(buckets);
});
Ceci permet d’obtenir les buckets résolus, notamment les compteurs dans le cas de buckets partiels.