]> git.notmuchmail.org Git - notmuch-wiki/blobdiff - manpages/notmuch-search-terms-7.mdwn
news for release 0.29.2
[notmuch-wiki] / manpages / notmuch-search-terms-7.mdwn
index f92b7c4e791b7d3b24bdcac5f7f2bbdd2d8006a4..e46c6b5e9d024f942e882bb74d8b954da719a911 100644 (file)
@@ -9,9 +9,11 @@
 <pre>
        <b>notmuch</b> <b>count</b> [option ...] &lt;<u>search-term</u>&gt; ...
 
-       <b>notmuch</b>  <b>dump</b>  [--format=(batch-tag|sup)]  [--]  [--output=&lt;<u>file</u>&gt;] [--]
+       <b>notmuch</b> <b>dump</b> [--gzip] [--format=(batch-tag|sup)] [--output=&lt;<u>file</u>&gt;] [--]
        [&lt;<u>search-term</u>&gt; ...]
 
+       <b>notmuch</b> <b>reindex</b> [option ...] &lt;<u>search-term</u>&gt; ...
+
        <b>notmuch</b> <b>search</b> [option ...] &lt;<u>search-term</u>&gt; ...
 
        <b>notmuch</b> <b>show</b> [option ...] &lt;<u>search-term</u>&gt; ...
 
        As  a  special  case,  a  search  string consisting of exactly a single
        asterisk (&quot;*&quot;) will match all messages.
+</pre>
 
+<h3> &nbsp; Search prefixes</h3>
+<pre>
        In addition to free text, the following prefixes can be used  to  force
        terms to match against specific portions of an email, (where &lt;brackets&gt;
-       indicate user-supplied values):
-
-       · from:&lt;name-or-address&gt;
-
-       · from:/&lt;regex&gt;/
-
-       · to:&lt;name-or-address&gt;
-
-       · subject:&lt;word-or-quoted-phrase&gt;
-
-       · subject:/&lt;regex&gt;/
-
-       · attachment:&lt;word&gt;
-
-       · mimetype:&lt;word&gt;
-
-       · tag:&lt;tag&gt; (or is:&lt;tag&gt;)
-
-       · id:&lt;message-id&gt;
-
-       · thread:&lt;thread-id&gt;
-
-       · folder:&lt;maildir-folder&gt;
-
-       · path:&lt;directory-path&gt; or path:&lt;directory-path&gt;/**
-
-       · date:&lt;since&gt;..&lt;until&gt;
-
-       · lastmod:&lt;initial-revision&gt;..&lt;final-revision&gt;
-
-       · query:&lt;name&gt;
-
-       · property:&lt;key&gt;=&lt;value&gt;
-
-       The <b>from:</b> prefix is used to match the name or address of the sender  of
-       an email message.
-
-       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).
-
-       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>.
-
-       If  notmuch is built with <b>Xapian</b> <b>Field</b> <b>Processors</b> (see below) the <b>from:</b>
-       and <b>subject</b> prefix can be also used to restrict the  results  to  those
-       whose  from/subject  value  matches a regular expression (see <b>regex</b>(7))
-       delimited with //.
-
-          notmuch search &apos;from:/bob@.*[.]example[.]com/&apos;
-
-       The <b>attachment:</b> prefix can be used to search for specific filenames (or
-       extensions) of attachments to email messages.
-
-       The  <b>mimetype:</b> prefix will be used to match text from the content-types
-       of MIME parts within email messages (as specified by the sender).
-
-       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>.
-
-       For <b>id:</b>, message ID values are the literal contents of the  Message-ID:
-       header of email messages, but without the &apos;&lt;&apos;, &apos;&gt;&apos; delimiters.
-
-       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>
-
-       The <b>path:</b> prefix searches for email messages  that  are  in  particular
-       directories within the mail store. The directory must be specified rel‐
-       ative to the top-level maildir (and  without  the  leading  slash).  By
-       default,  <b>path:</b>  matches  messages in the specified directory only. The
-       &quot;/**&quot; suffix can be used to match messages in the  specified  directory
-       and  all  its  subdirectories recursively.  <b>path:&quot;&quot;</b> matches messages in
-       the root of the mail store and, likewise, <b>path:**</b> matches all messages.
-
-       The <b>folder:</b> prefix searches for email messages by maildir or MH folder.
-       For  MH-style  folders,  this is equivalent to <b>path:</b>. For maildir, this
-       includes messages in the &quot;new&quot; and &quot;cur&quot; subdirectories. The exact syn‐
-       tax  for  maildir  folders  depends  on  your  mail  configuration. For
-       maildir++, <b>folder:&quot;&quot;</b> matches the inbox folder (which  is  the  root  in
-       maildir++),  other folder names always start with &quot;.&quot;, and nested fold‐
-       ers are separated by &quot;.&quot;s, such as <b>folder:.classes.topology</b>. For  &quot;file
-       system&quot; maildir, the inbox is typically <b>folder:INBOX</b> and nested folders
-       are separated by slashes, such as <b>folder:classes/topology</b>.
-
-       Both <b>path:</b> and <b>folder:</b> will find a message if <u>any</u> copy of that  message
-       is in the specific directory/folder.
-
-       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:&lt;since&gt;..&lt;until&gt;
-
-       See <b>DATE</b> <b>AND</b> <b>TIME</b> <b>SEARCH</b> below for details on the range expression, and
-       supported syntax for &lt;since&gt; and &lt;until&gt; date and time expressions.
-
-       The time range can also be specified using timestamps with a syntax of:
-
-       &lt;initial-timestamp&gt;..&lt;final-timestamp&gt;
-
-       Each timestamp is a number representing the  number  of  seconds  since
-       1970-01-01 00:00:00 UTC.
-
-       The  <b>lastmod:</b> 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 conjunc‐
-       tion with the <b>--uuid</b> argument to <b>notmuch</b> <b>search</b> to find  messages  that
-       have changed since an earlier query.
-
-       The  <b>query:</b>  prefix allows queries to refer to previously saved queries
-       added with <a href='../notmuch-config-1/'>notmuch-config</a>(1). Named queries are only available if  not‐
-       much is built with <b>Xapian</b> <b>Field</b> <b>Processors</b> (see below).
-
-       The   <b>property:</b>   prefix   searches  for  messages  with  a  particular
-       &lt;key&gt;=&lt;value&gt; 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.
+       indicate user-supplied values).
+
+       If notmuch is built with <b>Xapian</b> <b>Field</b> <b>Processors</b> (see  below)  some  of
+       the  prefixes  with  &lt;regex&gt;  forms  can  be  also used to restrict the
+       results  to  those  whose  value  matches  a  regular  expression  (see
+       <b>regex</b>(7)) delimited with //, for example:
+
+          notmuch search &apos;from:&quot;/bob@.*[.]example[.]com/&quot;&apos;
+
+       <b>body:&lt;word-or-quoted-phrase&gt;</b>
+              Match terms in the body of messages.
+
+       <b>from:&lt;name-or-address&gt;</b> <b>or</b> <b>from:/&lt;regex&gt;/</b>
+              The  <b>from:</b>  prefix  is  used to match the name or address of the
+              sender of an email message.
+
+       <b>to:&lt;name-or-address&gt;</b>
+              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).
+
+       <b>subject:&lt;word-or-quoted-phrase&gt;</b> <b>or</b> <b>subject:/&lt;regex&gt;/</b>
+              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, imme‐
+              diately following <b>subject:</b>.
+
+       <b>attachment:&lt;word&gt;</b>
+              The <b>attachment:</b> prefix can be used to search for specific  file‐
+              names (or extensions) of attachments to email messages.
+
+       <b>mimetype:&lt;word&gt;</b>
+              The  <b>mimetype:</b>  prefix  will be used to match text from the con‐
+              tent-types of MIME parts within email messages (as specified  by
+              the sender).
+
+       <b>tag:&lt;tag&gt;</b> <b>or</b> <b>tag:/&lt;regex&gt;/</b> <b>or</b> <b>is:&lt;tag&gt;</b> <b>or</b> <b>is:/&lt;regex&gt;/</b>
+              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>.
+
+       <b>id:&lt;message-id&gt;</b> <b>or</b> <b>mid:&lt;message-id&gt;</b> <b>or</b> <b>mid:/&lt;regex&gt;/</b>
+              For  <b>id:</b> and <b>mid:</b>, message ID values are the literal contents of
+              the Message-ID: header of email messages, but without  the  &apos;&lt;&apos;,
+              &apos;&gt;&apos; delimiters.
+
+       <b>thread:&lt;thread-id&gt;</b>
+              The  <b>thread:</b>  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 <b>notmuch</b> <b>search</b>
+
+       <b>thread:{&lt;notmuch</b> <b>query&gt;}</b>
+              If notmuch is built with <b>Xapian</b> <b>Field</b>  <b>Processors</b>  (see  below),
+              threads may be searched for indirectly by providing an arbitrary
+              notmuch query in <b>{}</b>. For example, the following returns  threads
+              containing  a  message from mallory and one (not necessarily the
+              same message) with Subject containing the word &quot;crypto&quot;.
+
+                 % notmuch search &apos;thread:&quot;{from:mallory}&quot; and thread:&quot;{subject:crypto}&quot;&apos;
+
+              The performance of such queries can vary wildly.  To  understand
+              this, the user should think of the query <b>thread:{&lt;something&gt;}</b> as
+              expanding to all of the thread IDs which match <b>&lt;something&gt;</b>; not‐
+              much then performs a second search using the expanded query.
+
+       <b>path:&lt;directory-path&gt;</b> <b>or</b> <b>path:&lt;directory-path&gt;/**</b> <b>or</b> <b>path:/&lt;regex&gt;/</b>
+              The <b>path:</b> 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
+              leading slash). By default, <b>path:</b> matches messages in the speci‐
+              fied  directory only. The &quot;/**&quot; suffix can be used to match mes‐
+              sages in the specified  directory  and  all  its  subdirectories
+              recursively.  <b>path:&quot;&quot;</b>  matches  messages in the root of the mail
+              store and, likewise, <b>path:**</b> matches all messages.
+
+              <b>path:</b> will find a message if <u>any</u> copy of that message is in  the
+              specific directory.
+
+       <b>folder:&lt;maildir-folder&gt;</b> <b>or</b> <b>folder:/&lt;regex&gt;/</b>
+              The  <b>folder:</b> prefix searches for email messages by maildir or MH
+              folder. For MH-style folders, this is equivalent to  <b>path:</b>.  For
+              maildir, this includes messages in the &quot;new&quot; and &quot;cur&quot; subdirec‐
+              tories. The exact syntax for maildir  folders  depends  on  your
+              mail  configuration.  For maildir++, <b>folder:&quot;&quot;</b> matches the inbox
+              folder (which is the root  in  maildir++),  other  folder  names
+              always start with &quot;.&quot;, and nested folders are separated by &quot;.&quot;s,
+              such as <b>folder:.classes.topology</b>. For &quot;file system&quot; maildir, the
+              inbox is typically <b>folder:INBOX</b> and nested folders are separated
+              by slashes, such as <b>folder:classes/topology</b>.
+
+              <b>folder:</b> will find a message if <u>any</u> copy of that  message  is  in
+              the specific folder.
+
+       <b>date:&lt;since&gt;..&lt;until&gt;</b> <b>or</b> <b>date:&lt;date&gt;</b>
+              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).
+
+              See  <b>DATE</b> <b>AND</b> <b>TIME</b> <b>SEARCH</b> below for details on the range expres‐
+              sion, and supported syntax for &lt;since&gt; and &lt;until&gt; date and time
+              expressions.
+
+              The  time  range  can also be specified using timestamps without
+              including the date prefix using a syntax of:
+
+              &lt;initial-timestamp&gt;..&lt;final-timestamp&gt;
+
+              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.
+
+       <b>lastmod:&lt;initial-revision&gt;..&lt;final-revision&gt;</b>
+              The <b>lastmod:</b> 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 <b>--uuid</b> argument to <b>notmuch</b> <b>search</b>
+              to find messages that have changed since an earlier query.
+
+       <b>query:&lt;name&gt;</b>
+              The <b>query:</b> prefix allows queries to refer  to  previously  saved
+              queries  added  with  <a href='../notmuch-config-1/'>notmuch-config</a>(1).  Named queries are only
+              available if notmuch is built with <b>Xapian</b> <b>Field</b> <b>Processors</b>  (see
+              below).
+
+       <b>property:&lt;key&gt;=&lt;value&gt;</b>
+              The  <b>property:</b>  prefix  searches  for messages with a particular
+              &lt;key&gt;=&lt;value&gt; 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 <a href='../notmuch-properties-7/'>notmuch-properties</a>(7) for more details.
+
+       User  defined  prefixes  are  also supported, see <a href='../notmuch-config-1/'>notmuch-config</a>(1) for
+       details.
 </pre>
 
 <h3> &nbsp; Operators</h3>
        Xapian  (and  hence  notmuch)  prefixes  are either <b>boolean</b>, supporting
        exact matches like &quot;<u>tag:inbox</u>&quot;  or  <b>probabilistic</b>,  supporting  a  more
        flexible  <b>term</b>  based searching. Certain <b>special</b> prefixes are processed
-       by notmuch in a way not stricly fitting either  of  Xapian&apos;s  built  in
+       by notmuch in a way not strictly fitting either of  Xapian&apos;s  built  in
        styles. The prefixes currently supported by notmuch are as follows.
 
        <b>Boolean</b>
               <b>tag:</b>, <b>id:</b>, <b>thread:</b>, <b>folder:</b>, <b>path:</b>, <b>property:</b>
 
        <b>Probabilistic</b>
-              <b>to:</b>, <b>attachment:</b>, <b>mimetype:</b>
+              <b>body:</b>, <b>to:</b>, <b>attachment:</b>, <b>mimetype:</b>
 
        <b>Special</b>
               <b>from:</b>, <b>query:</b>, <b>subject:</b>
        Phrases are indicated by double quotes (but beware you probably need to
        protect  those  from  your shell) and insist that those unstemmed words
        occur in that order. One useful, but initially  surprising  feature  is
-       that the following are equivalant ways to write the same phrase.
+       that the following are equivalent ways to write the same phrase.
 
        · &quot;a list of words&quot;
 
        · a.list.of.words
 
        Both parenthesised lists of terms and quoted phrases are ok with proba‐
-       bilisitic prefixes such as <b>to:</b>, <b>from:</b>, and <b>subject:</b>. In particular
+       bilistic prefixes such as <b>to:</b>, <b>from:</b>, and <b>subject:</b>. In particular
 
           subject:(pizza free)
 
        will not.
 </pre>
 
+<h3> &nbsp; Quoting</h3>
+<pre>
+       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:&quot;a tag&quot;
+
+          folder:&quot;/^.*/(Junk|Spam)$/&quot;
+
+          thread:&quot;{from:mallory and date:2009}&quot;
+
+       As with phrases, you need to protect the double quotes from  the  shell
+       e.g.
+
+          % notmuch search &apos;folder:&quot;/^.*/(Junk|Spam)$/&quot;&apos;
+          % notmuch search &apos;thread:&quot;{from:mallory and date:2009}&quot; and thread:{to:mallory}&apos;
+</pre>
+
 <h2>DATE AND TIME SEARCH</h2>
 <pre>
-       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 (&quot;2012-10-24&quot;) and in rela‐
-       tive terms (&quot;yesterday&quot;). Any number of relative terms can be  combined
-       (&quot;1  hour  25  minutes&quot;) and an absolute date/time can be combined with
-       relative terms to further adjust it. A  non-exhaustive  description  of
+       tive  terms (&quot;yesterday&quot;). Any number of relative terms can be combined
+       (&quot;1 hour 25 minutes&quot;) 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>
 
 <pre>
        date:&lt;since&gt;..&lt;until&gt;
 
-       The  above  expression  restricts  the  results  to  only messages from
+       The above expression  restricts  the  results  to  only  messages  from
        &lt;since&gt; to &lt;until&gt;, based on the Date: header.
 
-       &lt;since&gt; and &lt;until&gt; can describe imprecise times, such as  &quot;yesterday&quot;.
-       In  this  case, &lt;since&gt; is taken as the earliest time it could describe
+       &lt;since&gt;  and &lt;until&gt; can describe imprecise times, such as &quot;yesterday&quot;.
+       In this case, &lt;since&gt; is taken as the earliest time it  could  describe
        (the beginning of yesterday) and &lt;until&gt; 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.
 
+       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:@&lt;initial-timestamp&gt;..@&lt;final-timestamp&gt;
+
        date:&lt;expr&gt;..! can be used as a shorthand for date:&lt;expr&gt;..&lt;expr&gt;.  The
        expansion  takes  place  before  interpretation, and thus, for example,
        date:monday..! matches from the beginning of Monday until  the  end  of
        · named queries e.g. &quot;query:my_special_query&quot;
 
        · regular expression searches, e.g. &quot;subject:/^\[SPAM\]/&quot;
+
+       · thread subqueries, e.g. &quot;thread:{from:bob}&quot;
 </pre>
 
 <h2>SEE ALSO</h2>
 <pre>
        <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-insert-1/'>notmuch-insert</a>(1),  <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)
+       <a href='../notmuch-hooks-5/'>much-hooks</a>(5),  <a href='../notmuch-insert-1/'>notmuch-insert</a>(1),  <a href='../notmuch-new-1/'>notmuch-new</a>(1), <a href='../notmuch-reindex-1/'>notmuch-reindex</a>(1),
+       <b>notmuch-properties</b>(1),  <b>*notmuch-reply</b>(1),   <a href='../notmuch-restore-1/'>notmuch-restore</a>(1),   <a href='../notmuch-search-1/'>not‐</a>
+       <a href='../notmuch-search-1/'>much-search</a>(1), <b>*notmuch-show</b>(1), <a href='../notmuch-tag-1/'>notmuch-tag</a>(1)
 </pre>
 
 <h2>AUTHOR</h2>
 
 <h2>COPYRIGHT</h2>
 <pre>
-       2009-2017, Carl Worth and many others
+       2009-2019, Carl Worth and many others
 </pre>
 
-<h2>0.24</h2>
+<h2>0.29</h2>