]> Sergey Matveev's repositories - public-inbox.git/commitdiff
search: free up 'Q' prefix for a real unique identifier
authorEric Wong (Contractor, The Linux Foundation) <e@80x24.org>
Tue, 13 Feb 2018 03:02:56 +0000 (03:02 +0000)
committerEric Wong (Contractor, The Linux Foundation) <e@80x24.org>
Wed, 14 Feb 2018 00:35:23 +0000 (00:35 +0000)
This will allow easier-compatibility with v2 code which will
introduce content_id as the unique identifier.
The old "XMID" becomes "XM" as a free text searchable term.
"Q" becomes "XMID" as a boolean prefix.

There's no user-visible changes in this, but there needs to
be a schema version bump later on...
(more changes planned which can affect v1)

lib/PublicInbox/Search.pm
lib/PublicInbox/SearchIdx.pm
lib/PublicInbox/SearchMsg.pm

index 9ab5afe6d619860a1277314b5680350a109897b8..3ec96ca93a35fc966166c3c08ebb872cf3fb27d1 100644 (file)
@@ -56,13 +56,13 @@ my %bool_pfx_internal = (
 );
 
 my %bool_pfx_external = (
-       mid => 'Q', # uniQue id (Message-ID)
+       mid => 'XMID', # uniQue id (Message-ID)
 );
 
 my %prob_prefix = (
        # for mairix compatibility
        s => 'S',
-       m => 'XMID', # 'mid:' (bool) is exact, 'm:' (prob) can do partial
+       m => 'XM', # 'mid:' (bool) is exact, 'm:' (prob) can do partial
        f => 'A',
        t => 'XTO',
        tc => 'XTO XCC',
@@ -85,7 +85,7 @@ my %prob_prefix = (
        dfblob => 'XDFPRE XDFPOST',
 
        # default:
-       '' => 'XMID S A XNQ XQUOT XFN',
+       '' => 'XM S A XNQ XQUOT XFN',
 );
 
 # not documenting m: and mid: for now, the using the URLs works w/o Xapian
@@ -285,7 +285,7 @@ sub lookup_message {
        my ($self, $mid) = @_;
        $mid = mid_clean($mid);
 
-       my $doc_id = $self->find_unique_doc_id('Q' . $mid);
+       my $doc_id = $self->find_unique_doc_id('XMID' . $mid);
        my $smsg;
        if (defined $doc_id) {
                # raises on error:
index 66faed312c3243f1a56789c898b7d5bd4dd6e4a3..0ee077910c8b0d6f0ff7837d69250daf18e86037 100644 (file)
@@ -276,7 +276,7 @@ sub add_message {
                }
                $smsg = PublicInbox::SearchMsg->new($mime);
                my $doc = $smsg->{doc};
-               $doc->add_term('Q' . $mid);
+               $doc->add_term('XMID' . $mid);
 
                my $subj = $smsg->subject;
                if ($subj ne '') {
@@ -334,7 +334,7 @@ sub add_message {
                });
 
                link_message($self, $smsg, $old_tid);
-               $tg->index_text($mid, 1, 'XMID');
+               $tg->index_text($mid, 1, 'XM');
                $doc->set_data($smsg->to_doc_data($blob));
 
                if (my $altid = $self->{-altid}) {
@@ -366,7 +366,7 @@ sub remove_message {
        $mid = mid_clean($mid);
 
        eval {
-               $doc_id = $self->find_unique_doc_id('Q' . $mid);
+               $doc_id = $self->find_unique_doc_id('XMID' . $mid);
                if (defined $doc_id) {
                        $db->delete_document($doc_id);
                } else {
@@ -683,7 +683,7 @@ sub create_ghost {
 
        my $tid = $self->next_thread_id;
        my $doc = Search::Xapian::Document->new;
-       $doc->add_term('Q' . $mid);
+       $doc->add_term('XMID' . $mid);
        $doc->add_term('G' . $tid);
        $doc->add_term('T' . 'ghost');
 
index 70aa70674f8da9a8cd62145b9ed726d484f087e6..25c1abb863ca6b951a698a3cf5b0f7a8e732b989 100644 (file)
@@ -157,7 +157,7 @@ sub mid ($;$) {
        } elsif (my $rv = $self->{mid}) {
                $rv;
        } else {
-               $self->{mid} = _get_term_val($self, 'Q', qr/\AQ/) ||
+               $self->{mid} = _get_term_val($self, 'XMID', qr/\AXMID/) ||
                                $self->_extract_mid;
        }
 }