<h1>NOTMUCH-SEARCH-TERMS(7)</h1>
<h2>NAME</h2>
-
<pre>
- notmuch-search-terms - Syntax for notmuch queries
+ notmuch-search-terms - syntax for notmuch queries
</pre>
<h2>SYNOPSIS</h2>
-
<pre>
- <b>notmuch</b> <b>count</b> [<u>options...</u>] <<u>search-term</u>>...
-</pre>
+ <b>notmuch</b> <b>count</b> [<u>options...</u>] <<u>search-term</u>>...
-<pre>
- <b>notmuch</b> <b>dump</b> [ <<u>filename</u>> ] [--] [ <<u>search-term</u>>...]
-</pre>
+ <b>notmuch</b> <b>dump</b> [ <<u>filename</u>> ] [--] [ <<u>search-term</u>>...]
-<pre>
- <b>notmuch</b> <b>search</b> [<u>options</u>...] <<u>search-term</u>>...
-</pre>
+ <b>notmuch</b> <b>search</b> [<u>options</u>...] <<u>search-term</u>>...
-<pre>
- <b>notmuch</b> <b>show</b> [<u>options</u>...] <<u>search-term</u>>...
-</pre>
+ <b>notmuch</b> <b>show</b> [<u>options</u>...] <<u>search-term</u>>...
-<pre>
- <b>notmuch</b> <b>tag</b> +<<u>tag></u>|-<<u>tag</u>> [...] [--] <<u>search-term</u>>...
+ <b>notmuch</b> <b>tag</b> +<<u>tag</u>>|-<<u>tag</u>> [...] [--] <<u>search-term</u>>...
</pre>
<h2>DESCRIPTION</h2>
-
<pre>
Several notmuch commands accept a common syntax for search terms.
-</pre>
-<pre>
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 recipi-
ent headers.
-</pre>
-<pre>
As a special case, a search string consisting of exactly a single
- asterisk ("*") will match all messages.
-</pre>
+ asterisk ("*") will match all messages.
-<pre>
In addition to free text, the following prefixes can be used to force
- terms to match against specific portions of an email, (where <brackets>
+ terms to match against specific portions of an email, (where <brackets>
indicate user-supplied values):
-</pre>
-<pre>
- from:<name-or-address>
-</pre>
+ from:<name-or-address>
-<pre>
- to:<name-or-address>
-</pre>
+ to:<name-or-address>
-<pre>
- subject:<word-or-quoted-phrase>
-</pre>
+ subject:<word-or-quoted-phrase>
-<pre>
- attachment:<word>
-</pre>
+ attachment:<word>
-<pre>
- tag:<tag> (or is:<tag>)
-</pre>
+ tag:<tag> (or is:<tag>)
-<pre>
- id:<message-id>
-</pre>
+ id:<message-id>
-<pre>
- thread:<thread-id>
-</pre>
+ thread:<thread-id>
-<pre>
- folder:<directory-path>
-</pre>
+ folder:<directory-path>
+
+ date:<since>..<until>
-<pre>
The <b>from:</b> prefix is used to match the name or address of the sender of
an email message.
-</pre>
-<pre>
The <b>to:</b> prefix is used to match the names or addresses of any recipient
of an email message, (whether To, Cc, or Bcc).
-</pre>
-<pre>
Any term prefixed with <b>subject:</b> 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 <b>sub-</b>
<b>ject:</b>.
-</pre>
-<pre>
The <b>attachment:</b> prefix can be used to search for specific filenames (or
extensions) of attachments to email messages.
-</pre>
-<pre>
For <b>tag:</b> and <b>is:</b> valid tag values include <b>inbox</b> and <b>unread</b> by default
for new messages added by <b>notmuch</b> <b>new</b> as well as any other tag values
added manually with <b>notmuch</b> <b>tag</b>.
-</pre>
-<pre>
For <b>id:</b>, message ID values are the literal contents of the Message-ID:
- header of email messages, but without the '<', '>' delimiters.
-</pre>
+ header of email messages, but without the '<', '>' delimiters.
-<pre>
The <b>thread:</b> prefix can be used with the thread ID values that are gen-
erated 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</b> <b>search</b>
-</pre>
-<pre>
The <b>folder:</b> prefix can be used to search for email message files that
are contained within particular directories within the mail store. Only
the directory components below the top-level mail database path are
available to be searched.
-</pre>
-<pre>
- In addition to individual terms, multiple terms can be combined with
- Boolean operators ( <b>and</b>, <b>or</b>, <b>not</b> , 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
+ The <b>date:</b> 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 <b>DATE</b> <b>AND</b> <b>TIME</b> <b>SEARCH</b> 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 ( <b>and</b>, <b>or</b>, <b>not</b> , 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).
-</pre>
-<pre>
- 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
+ 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).
</pre>
+<h2>DATE AND TIME SEARCH</h2>
<pre>
- Finally, results can be restricted to only messages within a particular
- time range, (based on the Date: header) with a syntax of:
-</pre>
+ 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
+ the syntax supported for absolute and relative terms is given below.
-<pre>
- <initial-timestamp>..<final-timestamp>
-</pre>
+ <b>The</b> <b>range</b> <b>expression</b>
-<pre>
- Each timestamp is a number representing the number of seconds since
- 1970-01-01 00:00:00 UTC. This is not the most convenient means of
- expressing date ranges, but until notmuch is fixed to accept a more
- convenient form, one can use the date program to construct timestamps.
- For example, with the bash shell the following syntax would specify a
- date range to return messages from 2009-10-01 until the current time:
-</pre>
+ date:<since>..<until>
-<pre>
- $(date +%s -d 2009-10-01)..$(date +%s)
+ 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 "yes-
+ terday". 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 yester-
+ day). Similarly, date:january..february matches from the begin-
+ ning 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..yester-
+ day).
+
+ <b>Relative</b> <b>date</b> <b>and</b> <b>time</b>
+ [N|number] (years|months|weeks|days|hours|hrs|minutes|mins|sec-
+ onds|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, hun-
+ dred. 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
+
+ <b>Supported</b> <b>absolute</b> <b>time</b> <b>formats</b>
+ 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
+
+ <b>Supported</b> <b>absolute</b> <b>date</b> <b>formats</b>
+ 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
+
+ <b>Time</b> <b>zones</b>
+ (+|-)HH:MM
+
+ (+|-)HH[MM]
+
+ Some time zone codes, e.g. UTC, EET.
</pre>
<h2>SEE ALSO</h2>
-
<pre>
- <b>notmuch</b>(1), <b>notmuch-config</b>(1), <b>notmuch-count</b>(1), <b>notmuch-dump</b>(1), <b>not-</b>
- <b>much-hooks</b>(5), <b>notmuch-new</b>(1), <b>notmuch-reply</b>(1), <b>notmuch-restore</b>(1),
- <b>notmuch-search</b>(1), <b>notmuch-show</b>(1), <b>notmuch-tag</b>(1)
+ <a href='../notmuch-1/'>notmuch</a>(1), <a href='../notmuch-config-1/'>notmuch-config</a>(1), <a href='../notmuch-count-1/'>notmuch-count</a>(1), <a href='../notmuch-dump-1/'>notmuch-dump</a>(1), <a href='../notmuch-hooks-5/'>not-</a>
+ <a href='../notmuch-hooks-5/'>much-hooks</a>(5), <a href='../notmuch-new-1/'>notmuch-new</a>(1), <a href='../notmuch-reply-1/'>notmuch-reply</a>(1), <a href='../notmuch-restore-1/'>notmuch-restore</a>(1),
+ <a href='../notmuch-search-1/'>notmuch-search</a>(1), <a href='../notmuch-show-1/'>notmuch-show</a>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
</pre>
-<h2>Notmuch 0.13.2</h2>
+<h2>Notmuch 0.15</h2>