user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
* [PATCH] help: document new search prefixes
@ 2016-09-13  1:21 Eric Wong
  0 siblings, 0 replies; only message in thread
From: Eric Wong @ 2016-09-13  1:21 UTC (permalink / raw)
  To: meta

Support (and document) 'a:' after all, as "mairix -h" uses it,
so this should reduce the learning curve for mairix users.
---
 lib/PublicInbox/Search.pm  | 33 +++++++++++++++++----------------
 lib/PublicInbox/WwwText.pm |  6 +++++-
 2 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index 0c05677..8da30c1 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 b8beb97..b0f262c 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:
 
-- 
EW


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-09-13  1:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-13  1:21 [PATCH] help: document new search prefixes Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).