From f2e6f76a046492650713c1c3f1f1a19f49de59ea Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sat, 5 May 2018 12:59:28 -0300 Subject: [PATCH] doc: document thread subqueries Mention both performance and quoting issues. --- doc/man7/notmuch-search-terms.rst | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/doc/man7/notmuch-search-terms.rst b/doc/man7/notmuch-search-terms.rst index 248444e3..8a5eeb18 100644 --- a/doc/man7/notmuch-search-terms.rst +++ b/doc/man7/notmuch-search-terms.rst @@ -83,6 +83,22 @@ thread: messages). These thread ID values can be seen in the first column of output from **notmuch search** +thread:{} + If notmuch is built with **Xapian Field Processors** (see below), + threads may be searched for indirectly by providing an arbitrary + notmuch query in **{}**. For example, the following returns + threads containing a message from mallory and one (not necessarily + the same message) with Subject containing the word "crypto". + + :: + + % notmuch search 'thread:"{from:mallory}" and thread:"{subject:crypto}"' + + The performance of such queries can vary wildly. To understand + this, the user should think of the query **thread:{}** + as expanding to all of the thread IDs which match ****; + notmuch then performs a second search using the expanded query. + path: or path:/** or path:// The **path:** prefix searches for email messages that are in particular directories within the mail store. The directory must @@ -277,8 +293,8 @@ Quoting ------- Double quotes are also used by the notmuch query parser to protect -boolean terms or regular expressions containing spaces or other -special characters, e.g. +boolean terms, regular expressions, or subqueries containing spaces or +other special characters, e.g. :: @@ -288,12 +304,17 @@ special characters, e.g. folder:"/^.*/(Junk|Spam)$/" +:: + + thread:"{from:mallory and date:2009}" + As with phrases, you need to protect the double quotes from the shell e.g. :: % notmuch search 'folder:"/^.*/(Junk|Spam)$/"' + % notmuch search 'thread:"{from:mallory and date:2009}" and thread:{to:mallory}' DATE AND TIME SEARCH ==================== @@ -435,6 +456,7 @@ Currently the following features require field processor support: - non-range date queries, e.g. "date:today" - named queries e.g. "query:my_special_query" - regular expression searches, e.g. "subject:/^\\[SPAM\\]/" +- thread subqueries, e.g. "thread:{from:bob}" SEE ALSO ========