Skip to content

Commit

Permalink
cleanup more
Browse files Browse the repository at this point in the history
  • Loading branch information
ranguard committed May 13, 2017
1 parent cd4b416 commit 8da0fdb
Showing 1 changed file with 36 additions and 38 deletions.
74 changes: 36 additions & 38 deletions lib/MetaCPAN/Model/Search.pm
Expand Up @@ -111,8 +111,15 @@ sub _search_expanded {
# Everything after this will fail (slowly and silently) without results.
return {} unless @distributions;

my $results = $self->_extract_results($es_results);
$results = $self->_add_descriptions_and_faves_to_flat_results($results);
# Lookup favs and extract results from es (adding in favs)
my $favorites = $self->search_favorites( \@distributions );
my $results = $self->_extract_results_add_favs( $es_results, $favorites );

# Add descriptions
my @ids = map { $_->{fields}->{id} } @{ $es_results->{hits}->{hits} };
my $descriptions = $self->search_descriptions(@ids);
map { $_->{description} = $descriptions->{results}->{ $_->{id} } }
@{$results};

return {

Expand Down Expand Up @@ -211,10 +218,17 @@ sub _search_collapsed {
);
my $es_dist_results = $self->run_query( file => $es_query );

my $results = $self->_extract_results($es_dist_results);
# Look up fav and description info
my $favorites = $self->search_favorites( \@distributions );
my $results
= $self->_extract_results_add_favs( $es_dist_results, $favorites );
$results = $self->_collapse_results($results);
$results
= $self->_add_descriptions_and_faves_to_collapsed_results($results);

# Sort out descriptions
my @ids = map { $_->[0]{id} } @$results;
my $descriptions = $self->search_descriptions( \@ids );
map { $_->[0]{description} = $descriptions->{results}{ $_->[0]{id} } }
@{$results};

return {
results => $results,
Expand Down Expand Up @@ -407,8 +421,8 @@ sub search_favorites {
return \%favorites;
}

sub _extract_results {
my ( $self, $results ) = @_;
sub _extract_results_add_favs {
my ( $self, $results, $favorites ) = @_;

return [
map {
Expand All @@ -417,47 +431,31 @@ sub _extract_results {
+{
%{ $res->{fields} },
%{ $res->{_source} },
abstract => delete $res->{fields}->{'abstract.analyzed'},
score => $res->{_score},
abstract => delete $res->{fields}->{'abstract.analyzed'},
score => $res->{_score},
favorites => $favorites->{ $res->{fields}->{distribution} },
}
} @{ $results->{hits}{hits} }
];
}

sub _add_descriptions_and_faves_to_flat_results {
my ( $self, $results ) = @_;

my @distributions = uniq map { $_->{distribution} } @{$results};
my $favorites = $self->search_favorites( \@distributions );

my @ids = uniq map { $_->{id} } @{$results};
my $descriptions = $self->search_descriptions( \@ids );

map {
$_->{description} = $descriptions->{results}->{ $_->{id} };
$_->{favorites} = $favorites->{ $_->{distribution} };
} @{$results};

return $results;
}

# we only add the description and favs to the top level dist
sub _add_descriptions_and_faves_to_collapsed_results {
my ( $self, $results ) = @_;
# sub _add_descriptions_and_faves_to_collapsed_results {
# my ( $self, $results ) = @_;

my @distributions = uniq map { $_->[0]->{distribution} } @{$results};
my $favorites = $self->search_favorites( \@distributions );
# my @distributions = uniq map { $_->[0]->{distribution} } @{$results};
# my $favorites = $self->search_favorites( \@distributions );

my @ids = uniq map { $_->[0]->{id} } @{$results};
my $descriptions = $self->search_descriptions( \@ids );
# my @ids = uniq map { $_->[0]->{id} } @{$results};
# my $descriptions = $self->search_descriptions( \@ids );

map {
$_->[0]->{description} = $descriptions->{results}->{ $_->[0]->{id} };
$_->[0]->{favorites} = $favorites->{ $_->[0]->{distribution} };
} @{$results};
# map {
# $_->[0]->{description} = $descriptions->{results}->{ $_->[0]->{id} };
# $_->[0]->{favorites} = $favorites->{ $_->[0]->{distribution} };
# } @{$results};

return $results;
}
# return $results;
# }

1;

Expand Down

0 comments on commit 8da0fdb

Please sign in to comment.