]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/SearchIdx.pm
rename SearchIdxThread to SearchIdxSkeleton
[public-inbox.git] / lib / PublicInbox / SearchIdx.pm
index 00b24d6857d518de1552e7c671a8863fe5704554..3259413789a1b4e3da5099fdf0e6a5146f209e5d 100644 (file)
@@ -141,18 +141,20 @@ sub add_val ($$$) {
        $doc->add_value($col, $num);
 }
 
-sub add_values ($$$$) {
-       my ($smsg, $bytes, $num, $lines) = @_;
+sub add_values ($$) {
+       my ($doc, $values) = @_;
 
-       my $ts = $smsg->ts;
-       my $doc = $smsg->{doc};
-       add_val($doc, &PublicInbox::Search::TS, $ts);
+       my $ts = $values->[PublicInbox::Search::TS];
+       add_val($doc, PublicInbox::Search::TS, $ts);
 
-       defined($num) and add_val($doc, &PublicInbox::Search::NUM, $num);
+       my $num = $values->[PublicInbox::Search::NUM];
+       defined($num) and add_val($doc, PublicInbox::Search::NUM, $num);
 
-       defined($bytes) and add_val($doc, &PublicInbox::Search::BYTES, $bytes);
+       my $bytes = $values->[PublicInbox::Search::BYTES];
+       defined($bytes) and add_val($doc, PublicInbox::Search::BYTES, $bytes);
 
-       add_val($doc, &PublicInbox::Search::LINES, $lines);
+       my $lines = $values->[PublicInbox::Search::LINES];
+       add_val($doc, PublicInbox::Search::LINES, $lines);
 
        my $yyyymmdd = strftime('%Y%m%d', gmtime($ts));
        add_val($doc, PublicInbox::Search::YYYYMMDD, $yyyymmdd);
@@ -283,7 +285,7 @@ sub add_message {
 
        my ($doc_id, $old_tid);
        my $mid = mid_clean(mid_mime($mime));
-       my $threader = $self->{threader};
+       my $skel = $self->{skeleton};
 
        eval {
                die 'Message-ID too long' if length($mid) > MAX_MID_SIZE;
@@ -292,7 +294,7 @@ sub add_message {
                        # convert a ghost to a regular message
                        # it will also clobber any existing regular message
                        $doc_id = $smsg->{doc_id};
-                       $old_tid = $smsg->thread_id unless $threader;
+                       $old_tid = $smsg->thread_id unless $skel;
                }
                $smsg = PublicInbox::SearchMsg->new($mime);
                my $doc = $smsg->{doc};
@@ -307,7 +309,8 @@ sub add_message {
                }
 
                my $lines = $mime->body_raw =~ tr!\n!\n!;
-               add_values($smsg, $bytes, $num, $lines);
+               my @values = ($smsg->ts, $num, $bytes, $lines);
+               add_values($doc, \@values);
 
                my $tg = $self->term_generator;
 
@@ -359,8 +362,9 @@ sub add_message {
                # populates smsg->references for smsg->to_doc_data
                my $refs = parse_references($smsg);
                my $data = $smsg->to_doc_data($blob);
-               if ($threader) {
-                       $threader->thread_msg($mid, $smsg->ts, $xpath, $data);
+               if ($skel) {
+                       push @values, $mid, $xpath, $data;
+                       $skel->index_skeleton(\@values);
                } else {
                        link_message($self, $smsg, $refs, $old_tid);
                }
@@ -813,7 +817,7 @@ sub DESTROY {
        $_[0]->{lockfh} = undef;
 }
 
-# remote_* subs are only used by SearchIdxPart and SearchIdxThread:
+# remote_* subs are only used by SearchIdxPart and SearchIdxSkeleton
 sub remote_commit {
        my ($self) = @_;
        print { $self->{w} } "commit\n" or die "failed to write commit: $!";