Beispiel #1
0
        /// <inheritdoc />
        public ICollection <FacetItem> ExtractFacetItemList(Nest.AggregationsHelper aggs, IFacetDefinition facetDef, long total)
        {
            var facetOutput = new List <FacetItem>();
            /* Valeurs renseignées. */
            var agg = aggs.Filters(facetDef.Code);

            /* Cas où le portefeuille de l'utilisateur est vide : l'agrégation n'est pas définie */
            if (agg == null)
            {
                /* On considère que tous les documents sont en dehors du portefeuille. */
                facetOutput.Add(new FacetItem {
                    Code = OutValue, Label = facetDef.ResolveLabel(OutValue), Count = total
                });

                return(facetOutput);
            }

            /* Pour les valeurs inclus / exclus */
            foreach (var facetName in new[] { InValue, OutValue })
            {
                /* Ajoute une output s'il y a des documents sur la facet. */
                var bucket = agg.NamedBucket(facetName);
                if (bucket.DocCount > 0)
                {
                    facetOutput.Add(new FacetItem {
                        Code = facetName, Label = facetDef.ResolveLabel(facetName), Count = bucket.DocCount
                    });
                }
            }

            return(facetOutput);
        }
Beispiel #2
0
        /// <summary>
        /// Extrait les facets du résultat d'une requête.
        /// </summary>
        /// <param name="aggs">Aggrégations Elastic.</param>
        /// <param name="facetDef">Définition de la facette.</param>
        /// <returns>Sortie des facettes.</returns>
        public FacetOutput ExtractFacetOutput(Nest.AggregationsHelper aggs, IFacetDefinition facetDef)
        {
            var facetOutput = new FacetOutput();
            /* Valeurs renseignées. */
            var bucket = aggs.Terms(facetDef.Name);

            foreach (var b in bucket.Items)
            {
                facetOutput.Values.Add(new FacetItem {
                    Code = b.Key, Label = facetDef.ResolveLabel(b.Key), Count = b.DocCount
                });
            }

            /* Valeurs non renseignées. */
            var missingBucket = aggs.Missing(facetDef.Name + MissingFacetPrefix);
            var missingCount  = missingBucket.DocCount;

            if (missingCount > 0)
            {
                facetOutput.Values.Add(new FacetItem {
                    Code = FacetConst.NullValue, Label = "Non renseigné", Count = missingCount
                });
            }

            return(facetOutput);
        }
Beispiel #3
0
        /// <inheritdoc />
        public ICollection <FacetItem> ExtractFacetItemList(Nest.AggregationsHelper aggs, IFacetDefinition facetDef, long total)
        {
            var facetOutput = new List <FacetItem>();
            /* Valeurs renseignées. */
            var bucket = aggs.Filter(facetDef.Code).Terms(facetDef.Code);

            foreach (var b in bucket.Buckets)
            {
                facetOutput.Add(new FacetItem {
                    Code = b.Key, Label = facetDef.ResolveLabel(b.Key), Count = b.DocCount ?? 0
                });
            }

            /* Valeurs non renseignées. */
            var missingBucket = aggs.Filter(facetDef.Code).Missing(facetDef.Code + MissingFacetPrefix);
            var missingCount  = missingBucket.DocCount;

            if (missingCount > 0)
            {
                facetOutput.Add(new FacetItem {
                    Code = FacetConst.NullValue, Label = "focus.search.results.missing", Count = missingCount
                });
            }

            return(facetOutput);
        }