mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 19:08:09 +01:00
269 lines
7.1 KiB
Groff
269 lines
7.1 KiB
Groff
.TH NOTMUCH-SEARCH-TERMS 7 2013-12-30 "Notmuch 0.17"
|
|
|
|
.SH NAME
|
|
notmuch-search-terms \- syntax for notmuch queries
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B notmuch count
|
|
.RI [ options... ]
|
|
.RI < search-term ">..."
|
|
|
|
.B "notmuch dump"
|
|
.RI "[ <" filename "> ] [--]"
|
|
.RI "[ <" search-term ">...]"
|
|
|
|
.B notmuch search
|
|
.RI [ options "...] <" search-term ">..."
|
|
|
|
.B notmuch show
|
|
.RI "[" options "...] <" search-term ">..."
|
|
|
|
.B notmuch tag
|
|
.RI "+<" tag> "|\-<" tag "> [...] [\-\-] <" search-term ">..."
|
|
|
|
|
|
.SH DESCRIPTION
|
|
Several notmuch commands accept a common syntax for search terms.
|
|
|
|
The search terms can consist of free-form text (and quoted phrases)
|
|
which will match all messages that contain all of the given
|
|
terms/phrases in the body, the subject, or any of the sender or
|
|
recipient headers.
|
|
|
|
As a special case, a search string consisting of exactly a single
|
|
asterisk ("*") will match all messages.
|
|
|
|
In addition to free text, the following prefixes can be used to force
|
|
terms to match against specific portions of an email, (where
|
|
<brackets> indicate user-supplied values):
|
|
|
|
from:<name-or-address>
|
|
|
|
to:<name-or-address>
|
|
|
|
subject:<word-or-quoted-phrase>
|
|
|
|
attachment:<word>
|
|
|
|
tag:<tag> (or is:<tag>)
|
|
|
|
id:<message-id>
|
|
|
|
thread:<thread-id>
|
|
|
|
folder:<directory-path>
|
|
|
|
date:<since>..<until>
|
|
|
|
The
|
|
.B from:
|
|
prefix is used to match the name or address of the sender of an email
|
|
message.
|
|
|
|
The
|
|
.B to:
|
|
prefix is used to match the names or addresses of any recipient of an
|
|
email message, (whether To, Cc, or Bcc).
|
|
|
|
Any term prefixed with
|
|
.B 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, immediately following
|
|
.BR subject: .
|
|
|
|
The
|
|
.B attachment:
|
|
prefix can be used to search for specific filenames (or extensions) of
|
|
attachments to email messages.
|
|
|
|
For
|
|
.BR tag: " and " is:
|
|
valid tag values include
|
|
.BR inbox " and " unread
|
|
by default for new messages added by
|
|
.B notmuch new
|
|
as well as any other tag values added manually with
|
|
.BR "notmuch tag" .
|
|
|
|
For
|
|
.BR id: ,
|
|
message ID values are the literal contents of the Message\-ID: header
|
|
of email messages, but without the '<', '>' delimiters.
|
|
|
|
The
|
|
.B 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 column of output from
|
|
.B "notmuch search"
|
|
|
|
The
|
|
.B folder:
|
|
prefix can be used to search for email message files that are
|
|
contained within particular directories within the mail store. If the
|
|
same email message has multiple message files associated with it, it's
|
|
sufficient for a match that at least one of the files is contained
|
|
within a matching directory. Only the directory components below the
|
|
top-level mail database path are available to be searched.
|
|
|
|
The
|
|
.B date:
|
|
prefix can be used to restrict the results to only messages within a
|
|
particular time range (based on the Date: header) with a range syntax
|
|
of:
|
|
|
|
date:<since>..<until>
|
|
|
|
See \fBDATE AND TIME SEARCH\fR below for details on the range
|
|
expression, and supported syntax for <since> and <until> date and time
|
|
expressions.
|
|
|
|
The time range can also be specified using timestamps with 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.
|
|
|
|
In addition to individual terms, multiple terms can be
|
|
combined with Boolean operators (
|
|
.BR and ", " or ", " not
|
|
, etc.). Each term in the query will be implicitly connected by a
|
|
logical AND if no explicit operator is provided, (except that terms
|
|
with a common prefix will be implicitly combined with OR until we get
|
|
Xapian defect #402 fixed).
|
|
|
|
Parentheses can also be used to control the combination of the Boolean
|
|
operators, but will have to be protected from interpretation by the
|
|
shell, (such as by putting quotation marks around any parenthesized
|
|
expression).
|
|
|
|
.SH DATE AND TIME SEARCH
|
|
|
|
notmuch understands a variety of standard and natural ways of
|
|
expressing dates and times, both in absolute terms ("2012-10-24") and
|
|
in relative 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.
|
|
|
|
.RS 4
|
|
.TP 4
|
|
.B The range expression
|
|
|
|
date:<since>..<until>
|
|
|
|
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
|
|
(the beginning of yesterday) and <until> is taken as the latest time
|
|
it could describe (the end of yesterday). Similarly,
|
|
date:january..february matches from the beginning of January to the
|
|
end of February.
|
|
|
|
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 for clarity.
|
|
|
|
Open-ended ranges are supported (since Xapian 1.2.1), i.e. it's
|
|
possible 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.
|
|
|
|
Entering date:expr without ".." (for example date:yesterday) won't
|
|
work, as it's not interpreted as a range expression at all. You can
|
|
achieve the expected result by duplicating the expr both sides of ".."
|
|
(for example date:yesterday..yesterday).
|
|
.RE
|
|
|
|
.RS 4
|
|
.TP 4
|
|
.B Relative date and time
|
|
[N|number] (years|months|weeks|days|hours|hrs|minutes|mins|seconds|secs) [...]
|
|
|
|
All refer to past, can be repeated and will be accumulated.
|
|
|
|
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 week" or "this month").
|
|
|
|
When combined with absolute date and time, the relative date and time
|
|
specification will be relative from the specified absolute date and
|
|
time.
|
|
|
|
Examples: 5M2d, two weeks
|
|
.RE
|
|
|
|
.RS 4
|
|
.TP 4
|
|
.B Supported absolute time formats
|
|
H[H]:MM[:SS] [(am|a.m.|pm|p.m.)]
|
|
|
|
H[H] (am|a.m.|pm|p.m.)
|
|
|
|
HHMMSS
|
|
|
|
now
|
|
|
|
noon
|
|
|
|
midnight
|
|
|
|
Examples: 17:05, 5pm
|
|
.RE
|
|
|
|
.RS 4
|
|
.TP 4
|
|
.B Supported absolute date formats
|
|
YYYY-MM[-DD]
|
|
|
|
DD-MM[-[YY]YY]
|
|
|
|
MM-YYYY
|
|
|
|
M[M]/D[D][/[YY]YY]
|
|
|
|
M[M]/YYYY
|
|
|
|
D[D].M[M][.[YY]YY]
|
|
|
|
D[D][(st|nd|rd|th)] Mon[thname] [YYYY]
|
|
|
|
Mon[thname] D[D][(st|nd|rd|th)] [YYYY]
|
|
|
|
Wee[kday]
|
|
|
|
Month names can be abbreviated at three or more characters.
|
|
|
|
Weekday names can be abbreviated at three or more characters.
|
|
|
|
Examples: 2012-07-31, 31-07-2012, 7/31/2012, August 3
|
|
.RE
|
|
|
|
.RS 4
|
|
.TP 4
|
|
.B Time zones
|
|
(+|-)HH:MM
|
|
|
|
(+|-)HH[MM]
|
|
|
|
Some time zone codes, e.g. UTC, EET.
|
|
.RE
|
|
|
|
.SH SEE ALSO
|
|
|
|
\fBnotmuch\fR(1), \fBnotmuch-config\fR(1), \fBnotmuch-count\fR(1),
|
|
\fBnotmuch-dump\fR(1), \fBnotmuch-hooks\fR(5),
|
|
\fBnotmuch-insert\fR(1), \fBnotmuch-new\fR(1),
|
|
\fBnotmuch-reply\fR(1), \fBnotmuch-restore\fR(1),
|
|
\fBnotmuch-search\fR(1), \fBnotmuch-show\fR(1), \fBnotmuch-tag\fR(1)
|