]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Search.pm
searchmsg: favor direct hash access over accessor methods
[public-inbox.git] / lib / PublicInbox / Search.pm
index 24cb26670754b2f4a21b62e7d22c3cdc76098a5a..86354b571f88541fe2d271c92c220204a151bf97 100644 (file)
@@ -108,12 +108,6 @@ my %all_pfx = (%bool_pfx_internal, %bool_pfx_external, %prob_prefix);
 
 sub xpfx { $all_pfx{$_[0]} }
 
-our %PFX2TERM_RMAP;
-my %meta_pfx = (mid => 1, thread => 1, path => 1);
-while (my ($k, $v) = each %all_pfx) {
-       $PFX2TERM_RMAP{$v} = $k if $meta_pfx{$k};
-}
-
 my $mail_query = Search::Xapian::Query->new(xpfx('type') . 'mail');
 
 sub xdir {
@@ -288,15 +282,17 @@ sub lookup_message {
                # raises on error:
                my $doc = $self->{xdb}->get_document($doc_id);
                $smsg = PublicInbox::SearchMsg->wrap($doc, $mid);
-               $smsg->doc_id($doc_id);
+               $smsg->{doc_id} = $doc_id;
        }
        $smsg;
 }
 
 sub lookup_mail { # no ghosts!
        my ($self, $mid) = @_;
-       my $smsg = lookup_message($self, $mid) or return;
-       PublicInbox::SearchMsg->load_doc($smsg->{doc});
+       retry_reopen($self, sub {
+               my $smsg = lookup_message($self, $mid) or return;
+               PublicInbox::SearchMsg->load_doc($smsg->{doc});
+       });
 }
 
 sub find_unique_doc_id {