From: Eric Wong <e@80x24.org>
Date: Tue, 13 Sep 2016 01:18:30 +0000 (+0000)
Subject: help: document new search prefixes
X-Git-Tag: v1.0.0~183
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=1ab140121d5ad0f65757fbb4c18f336d59b57ec4;p=public-inbox.git

help: document new search prefixes

Support (and document) 'a:' after all, as "mairix -h" uses it,
so this should reduce the learning curve for mairix users.
---

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: