Skip to content

Commit 7eedebe

Browse files
committed
more variable naming and cleaning
1 parent ff7fdb2 commit 7eedebe

File tree

1 file changed

+30
-22
lines changed

1 file changed

+30
-22
lines changed

lib/MetaCPAN/Model/Search.pm

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package MetaCPAN::Model::Search;
22

3-
use Moose;
3+
use MetaCPAN::Moose;
44

5+
use Const::Fast qw( const );
56
use Log::Contextual qw( :log :dlog );
67
use MooseX::StrictConstructor;
78

@@ -23,9 +24,9 @@ has index => (
2324
required => 1,
2425
);
2526

26-
my $RESULTS_PER_RUN = 200;
27-
my @ROGUE_DISTRIBUTIONS
28-
= qw(kurila perl_debug perl_mlb perl-5.005_02+apache1.3.3+modperl pod2texi perlbench spodcxx Bundle-Everything);
27+
const my $RESULTS_PER_RUN => 200;
28+
const my @ROGUE_DISTRIBUTIONS =>
29+
qw(kurila perl_debug perl_mlb perl-5.005_02+apache1.3.3+modperl pod2texi perlbench spodcxx Bundle-Everything);
2930

3031
sub _not_rogue {
3132
my @rogue_dists
@@ -36,17 +37,17 @@ sub _not_rogue {
3637
sub search_simple {
3738
my ( $self, $search_term ) = @_;
3839
my $es_query = $self->build_query($search_term);
39-
my $results = $self->run_query( file => $es_query );
40-
return $results;
40+
my $es_results = $self->run_query( file => $es_query );
41+
return $es_results;
4142
}
4243

4344
sub search_for_first_result {
4445
my ( $self, $search_term ) = @_;
4546
my $es_query = $self->build_query($search_term);
46-
my $results = $self->run_query( file => $es_query );
47-
return unless $results->{hits}{total};
47+
my $es_results = $self->run_query( file => $es_query );
48+
return unless $es_results->{hits}{total};
4849

49-
my $data = $results->{hits}{hits}[0];
50+
my $data = $es_results->{hits}{hits}[0];
5051
single_valued_arrayref_to_scalar( $data->{fields} );
5152
return $data->{fields};
5253
}
@@ -232,27 +233,31 @@ sub _search_collapsed {
232233
}
233234
}
234235
);
235-
my $results = $self->run_query( file => $es_query );
236+
my $es_dist_results = $self->run_query( file => $es_query );
236237

238+
# Look up favs and add to extracted results
237239
my $favorites = $self->search_favorites(@distributions);
238-
$took += sum( grep {defined} $results->{took}, $favorites->{took} );
239-
240-
$results = $self->_extract_results_add_favs( $results, $favorites );
240+
my $results
241+
= $self->_extract_results_add_favs( $es_dist_results, $favorites );
241242
$results = $self->_collapse_results($results);
243+
244+
# Add descriptions, but only after collapsed as is slow
242245
my @ids = map { $_->[0]{id} } @$results;
243-
my $data = {
246+
my $descriptions = $self->search_descriptions(@ids);
247+
map { $_->[0]{description} = $descriptions->{results}{ $_->[0]{id} } }
248+
@{$results};
249+
250+
# Calculate took from sum of all ES searches
251+
$took += sum( grep {defined} $es_dist_results->{took},
252+
$favorites->{took}, $descriptions->{took} );
253+
254+
return {
244255
results => $results,
245256
total => $total,
246257
took => $took,
247258
collapsed => \1,
248259
};
249260

250-
my $descriptions = $self->search_descriptions(@ids);
251-
$data->{took} += $descriptions->{took} || 0;
252-
map { $_->[0]{description} = $descriptions->{results}{ $_->[0]{id} } }
253-
@{ $data->{results} };
254-
255-
return $data;
256261
}
257262

258263
sub _collapse_results {
@@ -265,6 +270,9 @@ sub _collapse_results {
265270
unless ( $collapsed{$distribution} );
266271
push( @{ $collapsed{$distribution}->{results} }, $result );
267272
}
273+
274+
# We return array ref because the results have matching modules
275+
# grouped by distribution
268276
return [
269277
map { $collapsed{$_}->{results} }
270278
sort { $collapsed{$a}->{position} <=> $collapsed{$b}->{position} }
@@ -515,7 +523,7 @@ sub search_favorites {
515523
}
516524

517525
sub _extract_results_add_favs {
518-
my ( $self, $results, $favorites ) = @_;
526+
my ( $self, $es_results, $favorites ) = @_;
519527

520528
return [
521529
map {
@@ -528,7 +536,7 @@ sub _extract_results_add_favs {
528536
score => $res->{_score},
529537
favorites => $favorites->{ $res->{fields}->{distribution} },
530538
}
531-
} @{ $results->{hits}{hits} }
539+
} @{ $es_results->{hits}{hits} }
532540
];
533541
}
534542

0 commit comments

Comments
 (0)