'Q' is merely a convention in the Xapian world, and is close
enough to unique for practical purposes, so stop using XMID
and gain a little more term length as a result.
---
 lib/PublicInbox/ExtMsg.pm            | 2 +-
 lib/PublicInbox/Search.pm            | 8 ++++----
 lib/PublicInbox/SearchIdx.pm         | 8 ++++----
 lib/PublicInbox/SearchIdxSkeleton.pm | 2 +-
 lib/PublicInbox/SearchMsg.pm         | 2 +-
 5 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/lib/PublicInbox/ExtMsg.pm b/lib/PublicInbox/ExtMsg.pm
index 90d68db..f3076a3 100644
--- a/lib/PublicInbox/ExtMsg.pm
+++ b/lib/PublicInbox/ExtMsg.pm
@@ -46,7 +46,7 @@ sub ext_msg {
                }
 
                # try to find the URL with Xapian to avoid forking
-               my $doc_id = eval { $s->find_first_doc_id('XMID' . $mid) };
+               my $doc_id = eval { $s->find_first_doc_id('Q' . $mid) };
                if ($@) {
                        # xapian not configured properly for this repo
                        push @nox, $other;
diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index c074410..74f406a 100644
--- a/lib/PublicInbox/Search.pm
+++ b/lib/PublicInbox/Search.pm
@@ -56,7 +56,7 @@ my %bool_pfx_internal = (
 );
 
 my %bool_pfx_external = (
-       mid => 'XMID', # Message-ID (full/exact)
+       mid => 'Q', # Message-ID (full/exact), this is mostly uniQue
 );
 
 my %prob_prefix = (
@@ -333,7 +333,7 @@ sub lookup_skeleton {
        my ($self, $mid) = @_;
        my $skel = $self->{skel} or return lookup_message($self, $mid);
        $mid = mid_clean($mid);
-       my $term = 'XMID' . $mid;
+       my $term = 'Q' . $mid;
        my $smsg;
        my $beg = $skel->postlist_begin($term);
        if ($beg != $skel->postlist_end($term)) {
@@ -352,7 +352,7 @@ sub lookup_message {
        my ($self, $mid) = @_;
        $mid = mid_clean($mid);
 
-       my $doc_id = $self->find_first_doc_id('XMID' . $mid);
+       my $doc_id = $self->find_first_doc_id('Q' . $mid);
        my $smsg;
        if (defined $doc_id) {
                # raises on error:
@@ -377,7 +377,7 @@ sub each_smsg_by_mid {
        my $xdb = $self->{xdb};
        # XXX retry_reopen isn't necessary for V2Writable, but the PSGI
        # interface will need it...
-       my ($head, $tail) = $self->find_doc_ids('XMID' . $mid);
+       my ($head, $tail) = $self->find_doc_ids('Q' . $mid);
        for (; $head->nequal($tail); $head->inc) {
                my $doc_id = $head->get_docid;
                my $doc = $xdb->get_document($doc_id);
diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm
index 57aed75..61dc057 100644
--- a/lib/PublicInbox/SearchIdx.pm
+++ b/lib/PublicInbox/SearchIdx.pm
@@ -19,7 +19,7 @@ use POSIX qw(strftime);
 require PublicInbox::Git;
 
 use constant {
-       MAX_MID_SIZE => 244, # max term size - 1 in Xapian
+       MAX_MID_SIZE => 244, # max term size (Xapian limitation) - length('Q')
        PERM_UMASK => 0,
        OLD_PERM_GROUP => 1,
        OLD_PERM_EVERYBODY => 2,
@@ -302,7 +302,7 @@ sub add_message {
                }
                $smsg = PublicInbox::SearchMsg->new($mime);
                my $doc = $smsg->{doc};
-               $doc->add_term('XMID' . $mid);
+               $doc->add_term('Q' . $mid);
 
                my $subj = $smsg->subject;
                my $xpath;
@@ -404,7 +404,7 @@ sub remove_message {
        $mid = mid_clean($mid);
 
        eval {
-               my ($head, $tail) = $self->find_doc_ids('XMID' . $mid);
+               my ($head, $tail) = $self->find_doc_ids('Q' . $mid);
                if ($head->equal($tail)) {
                        warn "cannot remove non-existent <$mid>\n";
                }
@@ -721,7 +721,7 @@ sub create_ghost {
 
        my $tid = $self->next_thread_id;
        my $doc = Search::Xapian::Document->new;
-       $doc->add_term('XMID' . $mid);
+       $doc->add_term('Q' . $mid);
        $doc->add_term('G' . $tid);
        $doc->add_term('T' . 'ghost');
 
diff --git a/lib/PublicInbox/SearchIdxSkeleton.pm 
b/lib/PublicInbox/SearchIdxSkeleton.pm
index aa2713f..333f965 100644
--- a/lib/PublicInbox/SearchIdxSkeleton.pm
+++ b/lib/PublicInbox/SearchIdxSkeleton.pm
@@ -107,7 +107,7 @@ sub index_skeleton_real ($$) {
        }
        my $doc = $smsg->{doc};
        $doc->add_term('XPATH' . $xpath) if defined $xpath;
-       $doc->add_term('XMID' . $mid);
+       $doc->add_term('Q' . $mid);
        PublicInbox::SearchIdx::add_values($doc, $values);
        $doc->set_data($doc_data);
        $smsg->{ts} = $ts;
diff --git a/lib/PublicInbox/SearchMsg.pm b/lib/PublicInbox/SearchMsg.pm
index 941bfd2..014f490 100644
--- a/lib/PublicInbox/SearchMsg.pm
+++ b/lib/PublicInbox/SearchMsg.pm
@@ -154,7 +154,7 @@ sub mid ($;$) {
        } elsif (my $rv = $self->{mid}) {
                $rv;
        } else {
-               $self->{mid} = _get_term_val($self, 'XMID', qr/\AXMID/) ||
+               $self->{mid} = _get_term_val($self, 'Q', qr/\AQ/) ||
                                $self->_extract_mid;
        }
 }
-- 
EW

--
unsubscribe: meta+unsubscr...@public-inbox.org
archive: https://public-inbox.org/meta/

Reply via email to