]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/SearchIdxSkeleton.pm
searchidx: add NNTP article number as a searchable term
[public-inbox.git] / lib / PublicInbox / SearchIdxSkeleton.pm
index 063c83e8db3091a6d26094995a794dbeb1ad75f2..4066b5915470872b2fc766e45650534b62560469 100644 (file)
@@ -80,6 +80,8 @@ sub index_skeleton {
        $str = length($str) . "\n" . $str;
 
        # multiple processes write to the same pipe, so use flock
+       # We can't avoid this lock for <=PIPE_BUF writes, either,
+       # because those atomic writes can break up >PIPE_BUF ones
        $self->_lock_acquire;
        print $w $str or $err = $!;
        $self->_lock_release;
@@ -96,7 +98,6 @@ sub index_skeleton_real ($$) {
        my $ts = $values->[PublicInbox::Search::TS];
        my $smsg = PublicInbox::SearchMsg->new(undef);
        my $doc = $smsg->{doc};
-       $doc->add_term('XPATH' . $xpath) if defined $xpath;
        foreach my $mid (@$mids) {
                $doc->add_term('Q' . $mid);
        }
@@ -104,8 +105,9 @@ sub index_skeleton_real ($$) {
        $doc->set_data($doc_data);
        $smsg->{ts} = $ts;
        $smsg->load_from_data($doc_data);
+       my $num = $values->[PublicInbox::Search::NUM];
        my @refs = ($smsg->references =~ /<([^>]+)>/g);
-       $self->link_and_save($doc, $mids, \@refs);
+       $self->link_and_save($doc, $mids, \@refs, $num, $xpath);
 }
 
 1;