X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=manpages%2Fnotmuch-search-terms-7.mdwn;h=5818d7f7ea0ca716e7ec3e6ac46621728f71a2a9;hb=85fe2a1e7df8ccbb172ebf5f10e3cf574a08944a;hp=0259d42a486a33bb2c7cb16696e13b7aa3a4fdb0;hpb=29654905e64093a5275f4a554527231072efccb9;p=notmuch-wiki
diff --git a/manpages/notmuch-search-terms-7.mdwn b/manpages/notmuch-search-terms-7.mdwn
index 0259d42..5818d7f 100644
--- a/manpages/notmuch-search-terms-7.mdwn
+++ b/manpages/notmuch-search-terms-7.mdwn
@@ -9,7 +9,7 @@
notmuch count [option ...] <search-term> ...
- notmuch dump [--format=(batch-tag|sup)] [--] [--output=<file>] [--]
+ notmuch dump [--gzip] [--format=(batch-tag|sup)] [--output=<file>] [--]
[<search-term> ...]
notmuch reindex [option ...] <search-term> ...
@@ -30,8 +30,8 @@
terms/phrases in the body, the subject, or any of the sender or recipiâ
ent headers.
- As a special case, a search string consisting of exactly a single
- asterisk ("*") will match all messages.
+ As a special case, a search string consisting of exactly a single asâ
+ terisk ("*") will match all messages.
Search prefixes
@@ -40,116 +40,134 @@
terms to match against specific portions of an email, (where <brackets>
indicate user-supplied values).
- If notmuch is built with Xapian Field Processors (see below) some of
- the prefixes with <regex> forms can be also used to restrict the
- results to those whose value matches a regular expression (see
+ Some of the prefixes with <regex> forms can be also used to restrict
+ the results to those whose value matches a regular expression (see
regex(7)) delimited with //, for example:
- notmuch search 'from:/bob@.*[.]example[.]com/'
+ notmuch search 'from:"/bob@.*[.]example[.]com/"'
+
+ body:<word-or-quoted-phrase>
+ Match terms in the body of messages.
from:<name-or-address> or from:/<regex>/
- The from: prefix is used to match the name or address of the
+ The from: prefix is used to match the name or address of the
sender of an email message.
to:<name-or-address>
- The to: prefix is used to match the names or addresses of any
+ The to: prefix is used to match the names or addresses of any
recipient of an email message, (whether To, Cc, or Bcc).
subject:<word-or-quoted-phrase> or subject:/<regex>/
- Any term prefixed with subject: will match only text from the
- subject of an email. Searching for a phrase in the subject is
- supported by including quotation marks around the phrase, immeâ
+ Any term prefixed with subject: will match only text from the
+ subject of an email. Searching for a phrase in the subject is
+ supported by including quotation marks around the phrase, immeâ
diately following subject:.
attachment:<word>
- The attachment: prefix can be used to search for specific fileâ
+ The attachment: prefix can be used to search for specific fileâ
names (or extensions) of attachments to email messages.
mimetype:<word>
- The mimetype: prefix will be used to match text from the conâ
- tent-types of MIME parts within email messages (as specified by
+ The mimetype: prefix will be used to match text from the conâ
+ tent-types of MIME parts within email messages (as specified by
the sender).
tag:<tag> or tag:/<regex>/ or is:<tag> or is:/<regex>/
- For tag: and is: valid tag values include inbox and unread by
- default for new messages added by notmuch new as well as any
- other tag values added manually with notmuch tag.
+ For tag: and is: valid tag values include inbox and unread by
+ default for new messages added by notmuch-new(1) as well as any
+ other tag values added manually with notmuch-tag(1).
id:<message-id> or mid:<message-id> or mid:/<regex>/
- For id: and mid:, message ID values are the literal contents of
- the Message-ID: header of email messages, but without the '<',
+ For id: and mid:, message ID values are the literal contents of
+ the Message-ID: header of email messages, but without the '<',
'>' delimiters.
thread:<thread-id>
- The thread: prefix can be used with the thread ID values that
- are generated internally by notmuch (and do not appear in email
- messages). These thread ID values can be seen in the first colâ
- umn of output from notmuch search
+ The thread: prefix can be used with the thread ID values that
+ are generated internally by notmuch (and do not appear in email
+ messages). These thread ID values can be seen in the first colâ
+ umn of output from notmuch-search(1)
+
+ thread:{<notmuch query>}
+ Threads may be searched for indirectly by providing an arbitrary
+ notmuch query in {}. For example, the following returns threads
+ containing a message from mallory and one (not necessarily the
+ same message) with Subject containing the word "crypto".
+
+ % notmuch search 'thread:"{from:mallory}" and thread:"{subject:crypto}"'
+
+ The performance of such queries can vary wildly. To understand
+ this, the user should think of the query thread:{<something>} as
+ expanding to all of the thread IDs which match <something>; notâ
+ much then performs a second search using the expanded query.
path:<directory-path> or path:<directory-path>/** or path:/<regex>/
The path: prefix searches for email messages that are in particâ
- ular directories within the mail store. The directory must be
- specified relative to the top-level maildir (and without the
+ ular directories within the mail store. The directory must be
+ specified relative to the top-level maildir (and without the
leading slash). By default, path: matches messages in the speciâ
- fied directory only. The "/**" suffix can be used to match mesâ
- sages in the specified directory and all its subdirectories
- recursively. path:"" matches messages in the root of the mail
+ fied directory only. The "/**" suffix can be used to match mesâ
+ sages in the specified directory and all its subdirectories reâ
+ cursively. path:"" matches messages in the root of the mail
store and, likewise, path:** matches all messages.
- path: will find a message if any copy of that message is in the
+ path: will find a message if any copy of that message is in the
specific directory.
folder:<maildir-folder> or folder:/<regex>/
- The folder: prefix searches for email messages by maildir or MH
- folder. For MH-style folders, this is equivalent to path:. For
+ The folder: prefix searches for email messages by maildir or MH
+ folder. For MH-style folders, this is equivalent to path:. For
maildir, this includes messages in the "new" and "cur" subdirecâ
- tories. The exact syntax for maildir folders depends on your
- mail configuration. For maildir++, folder:"" matches the inbox
- folder (which is the root in maildir++), other folder names
- always start with ".", and nested folders are separated by "."s,
+ tories. The exact syntax for maildir folders depends on your
+ mail configuration. For maildir++, folder:"" matches the inbox
+ folder (which is the root in maildir++), other folder names alâ
+ ways start with ".", and nested folders are separated by "."s,
such as folder:.classes.topology. For "file system" maildir, the
inbox is typically folder:INBOX and nested folders are separated
by slashes, such as folder:classes/topology.
- folder: will find a message if any copy of that message is in
+ folder: will find a message if any copy of that message is in
the specific folder.
date:<since>..<until> or date:<date>
- The date: prefix can be used to restrict the results to only
- messages within a particular time range (based on the Date:
+ The date: prefix can be used to restrict the results to only
+ messages within a particular time range (based on the Date:
header).
- See DATE AND TIME SEARCH below for details on the range expresâ
+ See DATE AND TIME SEARCH below for details on the range expresâ
sion, and supported syntax for <since> and <until> date and time
expressions.
- The time range can also be specified using timestamps with a
- syntax of:
+ The time range can also be specified using timestamps without
+ including the date prefix using a syntax of:
<initial-timestamp>..<final-timestamp>
- Each timestamp is a number representing the number of seconds
- since 1970-01-01 00:00:00 UTC.
+ Each timestamp is a number representing the number of seconds
+ since 1970-01-01 00:00:00 UTC. Specifying a time range this way
+ is considered legacy and predates the date prefix.
lastmod:<initial-revision>..<final-revision>
The lastmod: prefix can be used to restrict the result by the
database revision number of when messages were last modified
(tags were added/removed or filenames changed). This is usually
- used in conjunction with the --uuid argument to notmuch search
- to find messages that have changed since an earlier query.
+ used in conjunction with the --uuid argument to notâ
+ much-search(1) to find messages that have changed since an earâ
+ lier query.
query:<name>
- The query: prefix allows queries to refer to previously saved
- queries added with notmuch-config(1). Named queries are only
- available if notmuch is built with Xapian Field Processors (see
- below).
+ The query: prefix allows queries to refer to previously saved
+ queries added with notmuch-config(1).
property:<key>=<value>
- The property: prefix searches for messages with a particular
- <key>=<value> property pair. Properties are used internally by
- notmuch (and extensions) to add metadata to messages. A given
- key can be present on a given message with several different
+ The property: prefix searches for messages with a particular
+ <key>=<value> property pair. Properties are used internally by
+ notmuch (and extensions) to add metadata to messages. A given
+ key can be present on a given message with several different
values. See notmuch-properties(7) for more details.
+
+ User defined prefixes are also supported, see notmuch-config(1) for deâ
+ tails.
Operators
@@ -199,8 +217,8 @@
There are two ways to turn this off: a search for a capitalized word
will be performed unstemmed, so that one can search for "John" and not
- get results for "Johnson"; phrase searches are also unstemmed (see
- below for details). Stemming is currently only supported for English.
+ get results for "Johnson"; phrase searches are also unstemmed (see beâ
+ low for details). Stemming is currently only supported for English.
Searches for words in other languages will be performed unstemmed.
@@ -212,17 +230,17 @@
Boolean and Probabilistic Prefixes
- Xapian (and hence notmuch) prefixes are either boolean, supporting
- exact matches like "tag:inbox" or probabilistic, supporting a more
- flexible term based searching. Certain special prefixes are processed
- by notmuch in a way not strictly fitting either of Xapian's built in
+ Xapian (and hence notmuch) prefixes are either boolean, supporting exâ
+ act matches like "tag:inbox" or probabilistic, supporting a more flexiâ
+ ble term based searching. Certain special prefixes are processed by
+ notmuch in a way not strictly fitting either of Xapian's built in
styles. The prefixes currently supported by notmuch are as follows.
Boolean
tag:, id:, thread:, folder:, path:, property:
Probabilistic
- to:, attachment:, mimetype:
+ body:, to:, attachment:, mimetype:
Special
from:, query:, subject:
@@ -236,13 +254,13 @@
occur in that order. One useful, but initially surprising feature is
that the following are equivalent ways to write the same phrase.
- · "a list of words"
+ ⢠"a list of words"
- · a-list-of-words
+ ⢠a-list-of-words
- · a/list/of/words
+ ⢠a/list/of/words
- · a.list.of.words
+ ⢠a.list.of.words
Both parenthesised lists of terms and quoted phrases are ok with probaâ
bilistic prefixes such as to:, from:, and subject:. In particular
@@ -260,13 +278,32 @@
will not.
+ Quoting
+
+ Double quotes are also used by the notmuch query parser to protect
+ boolean terms, regular expressions, or subqueries containing spaces or
+ other special characters, e.g.
+
+ tag:"a tag"
+
+ folder:"/^.*/(Junk|Spam)$/"
+
+ thread:"{from:mallory and date:2009}"
+
+ As with phrases, you need to protect the double quotes from the shell
+ e.g.
+
+ % notmuch search 'folder:"/^.*/(Junk|Spam)$/"'
+ % notmuch search 'thread:"{from:mallory and date:2009}" and thread:{to:mallory}'
+
+
DATE AND TIME SEARCH
- notmuch understands a variety of standard and natural ways of expressâ
+ notmuch understands a variety of standard and natural ways of expressâ
ing dates and times, both in absolute terms ("2012-10-24") and in relaâ
- tive terms ("yesterday"). Any number of relative terms can be combined
- ("1 hour 25 minutes") and an absolute date/time can be combined with
- relative terms to further adjust it. A non-exhaustive description of
+ tive terms ("yesterday"). Any number of relative terms can be combined
+ ("1 hour 25 minutes") and an absolute date/time can be combined with
+ relative terms to further adjust it. A non-exhaustive description of
the syntax supported for absolute and relative terms is given below.
@@ -274,31 +311,36 @@
date:<since>..<until>
- The above expression restricts the results to only messages from
+ The above expression restricts the results to only messages from
<since> to <until>, based on the Date: header.
- <since> and <until> can describe imprecise times, such as "yesterday".
- In this case, <since> is taken as the earliest time it could describe
+ <since> and <until> can describe imprecise times, such as "yesterday".
+ In this case, <since> is taken as the earliest time it could describe
(the beginning of yesterday) and <until> is taken as the latest time it
- could describe (the end of yesterday). Similarly, date:january..februâ
+ could describe (the end of yesterday). Similarly, date:january..februâ
ary matches from the beginning of January to the end of February.
- date:<expr>..! can be used as a shorthand for date:<expr>..<expr>. The
- expansion takes place before interpretation, and thus, for example,
- date:monday..! matches from the beginning of Monday until the end of
- Monday. With Xapian Field Processor support (see below), non-range
- date queries such as date:yesterday will work, but otherwise will give
- unexpected results; if in doubt use date:yesterday..!
+ If specifying a time range using timestamps in conjunction with the
+ date prefix, each timestamp must be preceded by @ (ASCII hex 40). As
+ above, each timestamp is a number representing the number of seconds
+ since 1970-01-01 00:00:00 UTC. For example:
+ date:@<initial-timestamp>..@<final-timestamp>
- Currently, we do not support spaces in range expressions. You can
- replace the spaces with '_', or (in most cases) '-', or (in some cases)
- leave the spaces out altogether. Examples in this man page use spaces
+ Currently, spaces in range expressions are not supported. You can reâ
+ place the spaces with '_', or (in most cases) '-', or (in some cases)
+ leave the spaces out altogether. Examples in this man page use spaces
for clarity.
- Open-ended ranges are supported (since Xapian 1.2.1), i.e. it's possiâ
- ble to specify date:..<until> or date:<since>.. to not limit the start
- or end time, respectively. Pre-1.2.1 Xapian does not report an error on
- open ended ranges, but it does not work as expected either.
+ Open-ended ranges are supported. I.e. it's possible to specify
+ date:..<until> or date:<since>.. to not limit the start or end time,
+ respectively.
+
+
+ Single expression
+
+ date:<expr> works as a shorthand for date:<expr>..<expr>. For example,
+ date:monday matches from the beginning of Monday until the end of Monâ
+ day.
Relative date and time
@@ -311,8 +353,8 @@
Units can be abbreviated to any length, with the otherwise ambiguous
single m being m for minutes and M for months.
- Number can also be written out one, two, ..., ten, dozen, hundred.
- Additionally, the unit may be preceded by "last" or "this" (e.g., "last
+ Number can also be written out one, two, ..., ten, dozen, hundred. Adâ
+ ditionally, the unit may be preceded by "last" or "this" (e.g., "last
week" or "this month").
When combined with absolute date and time, the relative date and time
@@ -324,40 +366,40 @@
Supported absolute time formats
- · H[H]:MM[:SS] [(am|a.m.|pm|p.m.)]
+ ⢠H[H]:MM[:SS] [(am|a.m.|pm|p.m.)]
- · H[H] (am|a.m.|pm|p.m.)
+ ⢠H[H] (am|a.m.|pm|p.m.)
- · HHMMSS
+ ⢠HHMMSS
- · now
+ ⢠now
- · noon
+ ⢠noon
- · midnight
+ ⢠midnight
- · Examples: 17:05, 5pm
+ ⢠Examples: 17:05, 5pm
Supported absolute date formats
- · YYYY-MM[-DD]
+ ⢠YYYY-MM[-DD]
- · DD-MM[-[YY]YY]
+ ⢠DD-MM[-[YY]YY]
- · MM-YYYY
+ ⢠MM-YYYY
- · M[M]/D[D][/[YY]YY]
+ ⢠M[M]/D[D][/[YY]YY]
- · M[M]/YYYY
+ ⢠M[M]/YYYY
- · D[D].M[M][.[YY]YY]
+ ⢠D[D].M[M][.[YY]YY]
- · D[D][(st|nd|rd|th)] Mon[thname] [YYYY]
+ ⢠D[D][(st|nd|rd|th)] Mon[thname] [YYYY]
- · Mon[thname] D[D][(st|nd|rd|th)] [YYYY]
+ ⢠Mon[thname] D[D][(st|nd|rd|th)] [YYYY]
- · Wee[kday]
+ ⢠Wee[kday]
Month names can be abbreviated at three or more characters.
@@ -368,37 +410,19 @@
Time zones
- · (+|-)HH:MM
+ ⢠(+|-)HH:MM
- · (+|-)HH[MM]
+ ⢠(+|-)HH[MM]
Some time zone codes, e.g. UTC, EET.
-XAPIAN FIELD PROCESSORS
-
- Certain optional features of the notmuch query processor rely on the
- presence of the Xapian field processor API. You can determine if your
- notmuch was built against a sufficiently recent version of Xapian by
- running
-
- % notmuch config get built_with.field_processor
-
- Currently the following features require field processor support:
-
- · non-range date queries, e.g. "date:today"
-
- · named queries e.g. "query:my_special_query"
-
- · regular expression searches, e.g. "subject:/^\[SPAM\]/"
-
-
SEE ALSO
- notmuch(1), notmuch-config(1), notmuch-count(1), notmuch-dump(1), notâ
- much-hooks(5), notmuch-insert(1), notmuch-new(1), notmuch-reindex(1),
- notmuch-properties(1), *notmuch-reply(1), notmuch-restore(1), notâ
- much-search(1), *notmuch-show(1), notmuch-tag(1)
+ notmuch(1), notmuch-config(1), notmuch-count(1), notmuch-dump(1), notâ
+ much-hooks(5), notmuch-insert(1), notmuch-new(1), notmuch-properâ
+ ties(7), notmuch-reindex(1), notmuch-reply(1), notmuch-restore(1), notâ
+ much-search(1), notmuch-show(1), notmuch-tag(1)
AUTHOR
@@ -408,7 +432,7 @@
COPYRIGHT
- 2009-2018, Carl Worth and many others
+ 2009-2021, Carl Worth and many others
-0.26
+0.33