diff options
Diffstat (limited to 'lib/PublicInbox/ExtSearchIdx.pm')
-rw-r--r-- | lib/PublicInbox/ExtSearchIdx.pm | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/PublicInbox/ExtSearchIdx.pm b/lib/PublicInbox/ExtSearchIdx.pm index f04e0443..9d64ff5a 100644 --- a/lib/PublicInbox/ExtSearchIdx.pm +++ b/lib/PublicInbox/ExtSearchIdx.pm @@ -61,16 +61,20 @@ sub new { sub attach_inbox { my ($self, $ibx) = @_; - my $key = $ibx->eidx_key; - if (!$ibx->over || !$ibx->mm) { - warn "W: skipping $key (unindexed)\n"; - return; - } - if (!defined($ibx->uidvalidity)) { - warn "W: skipping $key (no UIDVALIDITY)\n"; - return; + my $ekey = $ibx->eidx_key; + my $misc = $self->{misc}; + if ($misc && $misc->inbox_data($ibx)) { # all good if already indexed + } else { + if (!$ibx->over || !$ibx->mm) { + warn "W: skipping $ekey (unindexed)\n"; + return; + } + if (!defined($ibx->uidvalidity)) { + warn "W: skipping $ekey (no UIDVALIDITY)\n"; + return; + } } - $self->{ibx_map}->{$key} //= do { + $self->{ibx_map}->{$ekey} //= do { push @{$self->{ibx_list}}, $ibx; $ibx; } |