about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2016-09-13 01:18:30 +0000
committerEric Wong <e@80x24.org>2016-09-13 01:19:13 +0000
commit1ab140121d5ad0f65757fbb4c18f336d59b57ec4 (patch)
tree6badcae29deff271257d8778a09f5849a53c401d
parent365d594829b963a9c95526ebb2af8859a0c4bc93 (diff)
downloadpublic-inbox-1ab140121d5ad0f65757fbb4c18f336d59b57ec4.tar.gz
Support (and document) 'a:' after all, as "mairix -h" uses it,
so this should reduce the learning curve for mairix users.
-rw-r--r--lib/PublicInbox/Search.pm33
-rw-r--r--lib/PublicInbox/WwwText.pm6
2 files changed, 22 insertions, 17 deletions
diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index 0c056772..8da30c19 100644
--- a/lib/PublicInbox/Search.pm
+++ b/lib/PublicInbox/Search.pm
@@ -67,13 +67,11 @@ my %prob_prefix = (
         tc => 'XTO XCC',
         c => 'XCC',
         tcf => 'XTO XCC A',
+        a => 'XTO XCC A',
         b => 'XNQ XQUOT',
         bs => 'XNQ XQUOT S',
         n => 'XFN',
 
-        # n.b.: leaving out "a:" alias for "tcf:" even though
-        # mairix supports it.  It is only mentioned in passing in mairix(1)
-        # and the extra two letters are not significantly longer.
         q => 'XQUOT',
         nq => 'XNQ',
 
@@ -83,24 +81,26 @@ my %prob_prefix = (
 
 # not documenting m: and mid: for now, the using the URLs works w/o Xapian
 our @HELP = (
-        's:' => <<EOF,
-match within Subject only  e.g. s:"a quick brown fox"
-This is a probabilistic search with support for stemming
-and wildcards '*'
-EOF
+        's:' => 'match within Subject  e.g. s:"a quick brown fox"',
         'd:' => <<EOF,
 date range as YYYYMMDD  e.g. d:19931002..20101002
 Open-ended ranges such as d:19931002.. and d:..20101002
-are also supported.
+are also supported
 EOF
+        'b:' => 'match within message body, including text attachments',
+        'nq:' => 'match non-quoted text within message body',
+        'quot:' => 'match quoted text within message body',
+        'n:' => 'match filename of attachment(s)',
+        't:' => 'match within the To header',
+        'c:' => 'match within the Cc header',
+        'f:' => 'match within the From header',
+        'a:' => 'match within the To, Cc, and From headers',
+        'tc:' => 'match within the To and Cc headers',
+        'bs:' => 'match within the Subject and body',
 );
-# TODO: (from mairix, some of these are maybe)
-# b (body), f (From:), c (Cc:), n (attachment), t (To:)
-# tc (To:+Cc:), bs (body + Subject), tcf (To: +Cc: +From:)
-#
-# Non-mairix:
+chomp @HELP;
+# TODO:
 # df (filenames from diff)
-# nq (non-quoted body)
 # da (diff a/ removed lines)
 # db (diff b/ added lines)
 
@@ -238,11 +238,12 @@ sub qp {
                         /\Aserial:(\w+):/ or next;
                         my $pfx = $1;
                         push @$user_pfx, "$pfx:", <<EOF;
-alternate serial number  e.g. $pfx:12345
+alternate serial number  e.g. $pfx:12345 (boolean)
 EOF
                         # gmane => XGMANE
                         $qp->add_boolean_prefix($pfx, 'X'.uc($pfx));
                 }
+                chomp @$user_pfx;
         }
 
         while (my ($name, $prefix) = each %prob_prefix) {
diff --git a/lib/PublicInbox/WwwText.pm b/lib/PublicInbox/WwwText.pm
index b8beb97c..b0f262cd 100644
--- a/lib/PublicInbox/WwwText.pm
+++ b/lib/PublicInbox/WwwText.pm
@@ -134,7 +134,7 @@ search
     in other search engines.
 
     We also support search prefixes to limit the scope of the
-    search to certain fields using prefixes.
+    search to certain fields.
 
     Prefixes supported in this installation include:
 
@@ -142,6 +142,10 @@ EOF
                 _srch_prefix($srch, $txt);
 
                 $$txt .= <<EOF;
+
+    Most prefixes are probabilistic, meaning they support stemming
+    and wildcards ('*').  Ranges (such as 'd:') and boolean prefixes
+    do not support stemming or wildcards.
     The upstream Xapian query parser documentation fully explains
     the query syntax: