App-ElasticSearch-Utilities
view release on metacpan or search on metacpan
lib/App/ElasticSearch/Utilities/Aggregations.pm view on Meta::CPAN
=head1 NAME
App::ElasticSearch::Utilities::Aggregations - Code to simplify creating and working with Elasticsearch aggregations
=head1 VERSION
version 8.8
=head1 FUNCTIONS
=head2 is_single_stat()
Returns true if an aggregation returns a single value.
=head2 expand_aggregate_string( token )
Takes a simplified aggregation grammar and expands it the full aggregation hash.
Simple Terms:
field_name
lib/App/ElasticSearch/Utilities/Query.pm view on Meta::CPAN
}
sub aggregations_by {
my ($self,$dir,$aggs) = @_;
my @sort = ();
my %aggs = ();
foreach my $def (@{ $aggs }) {
my ($name,$agg) = %{ expand_aggregate_string($def) };
next unless is_single_stat(keys %{ $agg });
$aggs{$name} = $agg;
push @sort, { $name => $dir };
}
if( @sort ) {
push @sort, { '_count' => 'desc' };
my $ref_aggs = $self->aggregations;
foreach my $name ( keys %{ $ref_aggs } ) {
foreach my $k ( keys %{ $ref_aggs->{$name} } ) {
next if $k eq $AGG_KEY;
( run in 0.917 second using v1.01-cache-2.11-cpan-49f99fa48dc )