X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=lib%2FPublicInbox%2FSearch.pm;h=cfa942b2f75a794f3ed356bf743b7799b86dca72;hp=546884a9a1fc4867f80a97f95494f4330470f70b;hb=80b887f29b2ec71d025b4c266a1c26314758994c;hpb=851aa7183cf2b152d7ff187729bc896597d22fad diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index 546884a9..cfa942b2 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -279,7 +279,7 @@ sub reopen { } # read-only -sub query { +sub mset { my ($self, $query_string, $opts) = @_; $opts ||= {}; my $qp = $self->{qp} //= qparse_new($self); @@ -346,17 +346,17 @@ sub _enquire_once { # retry_reopen callback if ($opts->{thread} && has_threadid($self)) { $enquire->set_collapse_key(THREADID); } + $enquire->get_mset($opts->{offset} || 0, $opts->{limit} || 50); +} - my $offset = $opts->{offset} || 0; - my $limit = $opts->{limit} || 50; - my $mset = $enquire->get_mset($offset, $limit); - return $mset if $opts->{mset}; +sub mset_to_smsg { + my ($self, $ibx, $mset) = @_; my $nshard = $self->{nshard} // 1; my $i = 0; my %order = map { mdocid($nshard, $_) => ++$i } $mset->items; my @msgs = sort { $order{$a->{num}} <=> $order{$b->{num}} - } @{$self->{over_ro}->get_all(keys %order)}; + } @{$ibx->over->get_all(keys %order)}; wantarray ? ($mset->get_matches_estimated, \@msgs) : \@msgs; }