]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/SearchIdx.pm
searchidx: fallback to lookup on pre-set article numbers
[public-inbox.git] / lib / PublicInbox / SearchIdx.pm
index 9ba9437d59b9a0baf2631bbffdde7f021d58baa9..0824db03c113a5d001b846b3f4c115ae1a3d7de2 100644 (file)
@@ -366,8 +366,12 @@ sub remove_message {
        $mid = mid_clean($mid);
 
        eval {
-               $doc_id = $self->find_unique_doc_id('mid', $mid);
-               $db->delete_document($doc_id) if defined $doc_id;
+               $doc_id = $self->find_unique_doc_id('Q' . $mid);
+               if (defined $doc_id) {
+                       $db->delete_document($doc_id);
+               } else {
+                       warn "cannot remove non-existent <$mid>\n";
+               }
        };
 
        if ($@) {
@@ -474,7 +478,12 @@ sub unindex_blob {
 
 sub index_mm {
        my ($self, $mime) = @_;
-       $self->{mm}->mid_insert(mid_clean(mid_mime($mime)));
+       my $mid = mid_clean(mid_mime($mime));
+       my $mm = $self->{mm};
+       my $num = $mm->mid_insert($mid);
+
+       # fallback to num_for since filters like RubyLang set the number
+       defined $num ? $num : $mm->num_for($mid);
 }
 
 sub unindex_mm {