]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/SearchView.pm
searchview: use over.sqlite3 instead of Xapian docdata
[public-inbox.git] / lib / PublicInbox / SearchView.pm
index 28d9ce5dd940ba337079ba39f2ae61fadec056b4..61534c2509a4888efc3858c8919e4c51209327fb 100644 (file)
@@ -13,6 +13,7 @@ use PublicInbox::WwwAtomStream;
 use PublicInbox::WwwStream qw(html_oneshot);
 use PublicInbox::SearchThread;
 use PublicInbox::SearchQuery;
+use PublicInbox::Search qw(mdocid);
 my %rmap_inc;
 
 sub mbox_results {
@@ -90,19 +91,22 @@ sub mset_summary {
        my $pfx = ' ' x $pad;
        my $res = \($ctx->{-html_tip});
        my $ibx = $ctx->{-inbox};
-       my $srch = $ibx->search;
+       my $over = $ibx->over;
+       my $nshard = $ibx->search->{nshard} // 1;
        my $obfs_ibx = $ibx->{obfuscate} ? $ibx : undef;
        foreach my $m ($mset->items) {
                my $rank = sprintf("%${pad}d", $m->get_rank + 1);
                my $pct = get_pct($m);
-               my $smsg = PublicInbox::Smsg::from_mitem($m, $srch);
+               my $num = mdocid($nshard, $m);
+               my $smsg = $over->get_art($num, 1);
                unless ($smsg) {
                        eval {
-                               $m = "$m ".$m->get_docid . " expired\n";
+                               $m = "$m $num expired\n";
                                $ctx->{env}->{'psgi.errors'}->print($m);
                        };
                        next;
                }
+               PublicInbox::Smsg::psgi_cull($smsg);
                my $s = ascii_html($smsg->{subject});
                my $f = ascii_html($smsg->{from_name});
                if ($obfs_ibx) {