$doc->add_value($col, $num);
}
-sub add_values ($$) {
- my ($doc, $values) = @_;
-
- my $ts = $values->[PublicInbox::Search::TS];
+sub add_values {
+ my ($doc, $ts, $ds, $num) = @_;
add_val($doc, PublicInbox::Search::TS, $ts);
-
- my $num = $values->[PublicInbox::Search::NUM];
- defined($num) and add_val($doc, PublicInbox::Search::NUM, $num);
-
- my $bytes = $values->[PublicInbox::Search::BYTES];
- defined($bytes) and add_val($doc, PublicInbox::Search::BYTES, $bytes);
-
- my $lines = $values->[PublicInbox::Search::LINES];
- add_val($doc, PublicInbox::Search::LINES, $lines);
-
- my $ds = $values->[PublicInbox::Search::DS];
- add_val($doc, PublicInbox::Search::DS, $ds);
my $yyyymmdd = strftime('%Y%m%d', gmtime($ds));
add_val($doc, PublicInbox::Search::YYYYMMDD, $yyyymmdd);
+ defined($num) and add_val($doc, PublicInbox::Search::NUM, $num);
}
sub index_users ($$) {
}
my $lines = $mime->body_raw =~ tr!\n!\n!;
- my @values = ($smsg->ds, $num, $bytes, $lines, $smsg->ts);
- add_values($doc, \@values);
+ $smsg->{lines} = $mime->body_raw =~ tr!\n!\n!;
+ defined $bytes or $bytes = length($mime->as_string);
+ $smsg->{bytes} = $bytes;
+ add_values($doc, $smsg->ts, $smsg->ds, $num);
my $tg = $self->term_generator;
$self->delete_article($num) if defined $num; # for reindexing
if ($skel) {
- push @values, $mids, $xpath, $data;
- $skel->index_skeleton(\@values);
+ my @vals = ($smsg->ts, $num, $mids, $xpath, $data);
+ $skel->index_skeleton(\@vals);
$doc->add_boolean_term('Q' . $_) foreach @$mids;
$doc->add_boolean_term('XNUM' . $num) if defined $num;
$doc_id = $self->{xdb}->add_document($doc);
$doc->add_boolean_term('XPATH' . $xpath) if defined $xpath;
$doc->add_boolean_term('Q' . $_) foreach @$mids;
- my $vivified = 0;
$self->{skel} and die "Should not have read-only skel here\n";;
foreach my $mid (@$mids) {
+ my $vivified = 0;
$self->each_smsg_by_mid($mid, sub {
my ($cur) = @_;
my $type = $cur->type;
++$vivified;
1;
});
- }
- if ($vivified > 1) {
- my $id = '<'.join('> <', @$mids).'>';
- warn "BUG: vivified multiple ($vivified) ghosts for $id\n";
+ $vivified > 1 and warn
+ "BUG: vivified multiple ($vivified) ghosts for $mid\n";
}
# not really important, but we return any vivified ghost docid, here:
return $doc_id if defined $doc_id;