X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=manpages%2Fnotmuch-search-terms-7.mdwn;h=634fde4f647c431c04feac5c10e058ead0d61743;hb=24d033149e3e920d201ef80b91e06e8ba441f416;hp=e25f0c6f554a42032d9c92207f581f496ada69fa;hpb=33b367e699bbcc8fecd001fab8033a4e91b13450;p=notmuch-wiki diff --git a/manpages/notmuch-search-terms-7.mdwn b/manpages/notmuch-search-terms-7.mdwn index e25f0c6..634fde4 100644 --- a/manpages/notmuch-search-terms-7.mdwn +++ b/manpages/notmuch-search-terms-7.mdwn @@ -1,179 +1,228 @@
- notmuch-search-terms - Syntax for notmuch queries + notmuch-search-terms - syntax for notmuch queries
- notmuch count [options...] <search-term>... -+ notmuch count [options...] <search-term>... -
- notmuch dump [ <filename> ] [--] [ <search-term>...] -+ notmuch dump [ <filename> ] [--] [ <search-term>...] -
- notmuch search [options...] <search-term>... -+ notmuch search [options...] <search-term>... -
- notmuch show [options...] <search-term>... -+ notmuch show [options...] <search-term>... -
- notmuch tag +<tag>|-<tag> [...] [--] <search-term>... + notmuch tag +<tag>|-<tag> [...] [--] <search-term>...
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 recipi- ent headers. --
As a special case, a search string consisting of exactly a single - asterisk ("*") will match all messages. -+ 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-+ terms to match against specific portions of an email, (where <brackets> indicate user-supplied values): -
- from:+ from:<name-or-address> --
- to:+ to:<name-or-address> --
- subject:+ subject:<word-or-quoted-phrase> --
- attachment:+ attachment:<word> --
- tag:+ tag:<tag> (or is:<tag>) -(or is: ) -
- id:+ id:<message-id> --
- thread:+ thread:<thread-id> --
- folder:+ folder:<directory-path> + + date:<since>..<until> --
The from: prefix is used to match the name or address of the sender of an email message. --
The 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 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 sub- ject:. --
The attachment: prefix can be used to search for specific filenames (or extensions) of attachments to email messages. --
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 id:, message ID values are the literal contents of the Message-ID: - header of email messages, but without the '<', '>' delimiters. -+ header of email messages, but without the '<', '>' delimiters. -
The thread: 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 notmuch search --
The folder: 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. --
- In addition to individual terms, multiple terms can be combined with - Boolean operators ( 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 + The 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 DATE AND TIME SEARCH 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 ( 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 + 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).+
- Finally, results can be restricted to only messages within a particular - time range, (based on the Date: header) with a syntax of: -+ 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. -
-+ The range expression -.. -
- 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: -+ date:<since>..<until> -
- $(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). + + Relative date and time + [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 + + 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 + + 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 + + Time zones + (+|-)HH:MM + + (+|-)HH[MM] + + Some time zone codes, e.g. UTC, EET.
- notmuch(1), notmuch-config(1), notmuch-count(1), notmuch-dump(1), not- - much-hooks(5), notmuch-new(1), notmuch-reply(1), notmuch-restore(1), - notmuch-search(1), notmuch-show(1), notmuch-tag(1) + notmuch(1), notmuch-config(1), notmuch-count(1), notmuch-dump(1), not- + much-hooks(5), notmuch-new(1), notmuch-reply(1), notmuch-restore(1), + notmuch-search(1), notmuch-show(1), notmuch-tag(1)-