]> git.cworth.org Git - notmuch-wiki/blobdiff - manpages/notmuch-search-terms-7.mdwn
release 0.23.4 manpages update
[notmuch-wiki] / manpages / notmuch-search-terms-7.mdwn
index ee5c1b2205455da5eccd42d6f365e327393bba3e..40b082d54323d183619990e6a7f089553fb291c7 100644 (file)
@@ -43,6 +43,8 @@
 
        · attachment:<word>
 
 
        · attachment:<word>
 
+       · mimetype:<word>
+
        · tag:<tag> (or is:<tag>)
 
        · id:<message-id>
        · tag:<tag> (or is:<tag>)
 
        · id:<message-id>
 
        · date:<since>..<until>
 
 
        · date:<since>..<until>
 
+       · lastmod:<initial-revision>..<final-revision>
+
+       · query:<name>
+
+       · property:<key>=<value>
+
        The <b>from:</b> prefix is used to match the name or address of the sender  of
        an email message.
 
        The <b>from:</b> prefix is used to match the name or address of the sender  of
        an email message.
 
        The <b>attachment:</b> prefix can be used to search for specific filenames (or
        extensions) of attachments to email messages.
 
        The <b>attachment:</b> prefix can be used to search for specific filenames (or
        extensions) of attachments to email messages.
 
-       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
+       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>.
 
        added manually with <b>notmuch</b> <b>tag</b>.
 
-       For <b>id:</b>, message ID values are the literal contents of the  Message-ID:
+       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.
 
        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
+       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>
 
        <b>notmuch</b> <b>search</b>
 
-       The <b>path:</b> prefix searches for email messages  that  are  in  particular
+       The  <b>path:</b>  prefix  searches  for email messages that are in particular
        directories within the mail store. The directory must be specified rel‐
        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
+       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.
        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
+       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‐
        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
+       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>.
 
        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
+       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.
 
        is in the specific directory/folder.
 
-       The  <b>date:</b>  prefix can be used to restrict the results to only messages
+       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:
 
        within a particular time range (based on the Date: header) with a range
        syntax of:
 
 
        &lt;initial-timestamp&gt;..&lt;final-timestamp&gt;
 
 
        &lt;initial-timestamp&gt;..&lt;final-timestamp&gt;
 
-       Each timestamp is a number representing the  number  of  seconds  since
+       Each  timestamp  is  a  number representing the number of seconds since
        1970-01-01 00:00:00 UTC.
 
        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.
+</pre>
+
+<h3> &nbsp; Operators</h3>
+<pre>
        In  addition  to  individual terms, multiple terms can be combined with
        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
+       Boolean operators (<b>and</b>, <b>or</b>, <b>not</b>, and <b>xor</b>). Each term in the query  will
        be  implicitly  connected  by  a logical AND if no explicit operator is
        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
+       provided (except that terms with a common  prefix  will  be  implicitly
+       combined  with  OR).   The  shorthand  &apos;-&lt;term&gt;&apos;  can  be used for &apos;not
+       &lt;term&gt;&apos; but unfortunately this does not work at the start of an expres‐
+       sion.   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).
        expression).
+
+       In addition to the standard boolean operators, Xapian provides  several
+       operators specific to text searching.
+
+          notmuch search term1 NEAR term2
+
+       will  return  results  where  term1  is  within  10 words of term2. The
+       threshold can be set like this:
+
+          notmuch search term1 NEAR/2 term2
+
+       The search
+
+          notmuch search term1 ADJ term2
+
+       will return results where term1 is within 10 words of term2, but in the
+       same  order  as in the query. The threshold can be set the same as with
+       NEAR:
+
+          notmuch search term1 ADJ/7 term2
+</pre>
+
+<h3> &nbsp; Stemming</h3>
+<pre>
+       <b>Stemming</b> in notmuch means that these searches
+
+          notmuch search detailed
+          notmuch search details
+          notmuch search detail
+
+       will all return identical results, because Xapian first  &quot;reduces&quot;  the
+       term to the common stem (here &apos;detail&apos;) and then performs the search.
+
+       There  are  two  ways to turn this off: a search for a capitalized word
+       will be performed unstemmed, so that one can search for &quot;John&quot; and  not
+       get  results  for  &quot;Johnson&quot;;  phrase  searches are also unstemmed (see
+       below for details).  Stemming is currently only supported for  English.
+       Searches for words in other languages will be performed unstemmed.
+</pre>
+
+<h3> &nbsp; Wildcards</h3>
+<pre>
+       It  is  possible  to  use  a  trailing  &apos;*&apos; as a wildcard. A search for
+       &apos;wildc*&apos; will match &apos;wildcard&apos;, &apos;wildcat&apos;, etc.
+</pre>
+
+<h3> &nbsp; Boolean and Probabilistic Prefixes</h3>
+<pre>
+       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. The prefixes currently supported by not‐
+       much 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>from:</b>, <b>to:</b>, <b>subject:</b>, <b>attachment:</b>, <b>mimetype:</b>
+</pre>
+
+<h3> &nbsp; Terms and phrases</h3>
+<pre>
+       In  general  Xapian  distinguishes  between lists of terms and <b>phrases</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.
+
+       · &quot;a list of words&quot;
+
+       · a-list-of-words
+
+       · a/list/of/words
+
+       · 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
+
+          subject:(pizza free)
+
+       is equivalent to
+
+          subject:pizza and subject:free
+
+       Both of these will match a subject &quot;Free Delicious Pizza&quot; while
+
+          subject:&quot;pizza free&quot;
+
+       will not.
 </pre>
 
 <h2>DATE AND TIME SEARCH</h2>
 </pre>
 
 <h2>DATE AND TIME SEARCH</h2>
        could  describe (the end of yesterday). Similarly, date:january..febru‐
        ary matches from the beginning of January to the end of February.
 
        could  describe (the end of yesterday). Similarly, date:january..febru‐
        ary matches from the beginning of January to the end of February.
 
-       Currently, we do not support  spaces  in  range  expressions.  You  can
+       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
+       Monday.   With  <b>Xapian</b>  <b>Field</b>  <b>Processor</b> 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..!
+
+       Currently,  we  do  not  support  spaces  in range expressions. You can
        replace the spaces with &apos;_&apos;, or (in most cases) &apos;-&apos;, or (in some cases)
        replace the spaces with &apos;_&apos;, or (in most cases) &apos;-&apos;, or (in some cases)
-       leave the spaces out altogether. Examples in this man page  use  spaces
+       leave  the  spaces out altogether. Examples in this man page use spaces
        for clarity.
 
        for clarity.
 
-       Open-ended  ranges are supported (since Xapian 1.2.1), i.e. it&apos;s possi‐
-       ble to specify date:..&lt;until&gt; or date:&lt;since&gt;.. to not limit the  start
+       Open-ended ranges are supported (since Xapian 1.2.1), i.e. it&apos;s  possi‐
+       ble  to specify date:..&lt;until&gt; or date:&lt;since&gt;.. 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.
        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  &quot;..&quot;  (for  example  date:yesterday)  won&apos;t
-       work,  as  it&apos;s  not  interpreted as a range expression at all. You can
-       achieve the expected result by duplicating the expr both sides of  &quot;..&quot;
-       (for example date:yesterday..yesterday).
 </pre>
 
 <h3> &nbsp; Relative date and time</h3>
 </pre>
 
 <h3> &nbsp; Relative date and time</h3>
        Some time zone codes, e.g. UTC, EET.
 </pre>
 
        Some time zone codes, e.g. UTC, EET.
 </pre>
 
+<h2>XAPIAN FIELD PROCESSORS</h2>
+<pre>
+       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. &quot;date:today&quot;
+
+       · named queries e.g. &quot;query:my_special_query&quot;
+</pre>
+
 <h2>SEE ALSO</h2>
 <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-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)
 </pre>
 
        <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>COPYRIGHT</h2>
 <pre>
 
 <h2>COPYRIGHT</h2>
 <pre>
-       2014, Carl Worth and many others
+       2009-2016, Carl Worth and many others
 </pre>
 
 </pre>
 
-<h2>0.19</h2>
+<h2>0.23.4</h2>