about summary refs log tree commit homepage
path: root/lib/PublicInbox/LeiXSearch.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/LeiXSearch.pm')
-rw-r--r--lib/PublicInbox/LeiXSearch.pm13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm
index 386c4eba..f64b2c62 100644
--- a/lib/PublicInbox/LeiXSearch.pm
+++ b/lib/PublicInbox/LeiXSearch.pm
@@ -69,11 +69,13 @@ sub xdb_shards_flat { @{$_[0]->{shards_flat} // []} }
 
 sub mitem_kw ($$;$) {
         my ($smsg, $mitem, $flagged) = @_;
-        my $kw = xap_terms('K', $mitem->get_document);
+        my $kw = xap_terms('K', my $doc = $mitem->get_document);
         $kw->{flagged} = 1 if $flagged;
-        # we keep the empty array here to prevent expensive work in
+        # we keep the empty {kw} array here to prevent expensive work in
         # ->xsmsg_vmd, _unbless_smsg will clobber it iff it's empty
         $smsg->{kw} = [ sort keys %$kw ];
+        my $L = xap_terms('L', $doc);
+        $smsg->{L} = [ sort keys %$L ] if scalar(keys %$L);
 }
 
 # like over->get_art
@@ -86,8 +88,10 @@ sub smsg_for {
         my $num = int(($docid - 1) / $nshard) + 1;
         my $ibx = $self->{shard2ibx}->[$shard];
         my $smsg = $ibx->over->get_art($num);
-        return if $smsg->{bytes} == 0;
-        mitem_kw($smsg, $mitem) if $ibx->can('msg_keywords');
+        return if $smsg->{bytes} == 0; # external message
+        if ($ibx->can('msg_keywords')) {
+                mitem_kw($smsg, $mitem);
+        }
         $smsg;
 }
 
@@ -170,6 +174,7 @@ sub query_thread_mset { # for --threads
                                         if ($can_kw) {
                                                 mitem_kw($smsg, $mitem, $fl);
                                         } elsif ($fl) {
+                                                # call ->xsmsg_vmd, later
                                                 $smsg->{lei_q_tt_flagged} = 1;
                                         }
                                 }