X-Git-Url: https://git.cworth.org/git?p=notmuch-wiki;a=blobdiff_plain;f=faq.mdwn;h=652d33015b4afe427bec0784d36a43c6a3b1b306;hp=6862685841982e3390179d6b3571bd075f3eaf71;hb=219490b75a85ca18d449168575a0c7538e71612e;hpb=406824ab5a1c54acf646231a59f0d11028f5113d diff --git a/faq.mdwn b/faq.mdwn index 6862685..652d330 100644 --- a/faq.mdwn +++ b/faq.mdwn @@ -12,6 +12,19 @@ with the same message (i.e. the files have identical Message-ID). A `folder:` search will match the folder of any of the files. The `--output=files` option outputs all the files of all matching messages. +## How come this query does not list all the emails on the file system? `notmuch search --output=files -- folder:inbox` + +You may have emails that only have some of the excluded tags. + +Notmuch can be configured to exclude some tags while searching. You can list excluded tags with + + $ notmuch config get search.exclude_tags + deleted + +To verify this is the reason of the discrepancy, add the excluded tags explicitly to your query. + + $ notmuch search --output=files -- folder:inbox tag:deleted + ## Shouldn't notmuch support inline PGP? [Why it might not be a good idea](https://dkg.fifthhorseman.net/notes/inline-pgp-harmful/) @@ -27,11 +40,26 @@ See [[excluding]]. See help for `message-citation-line-format` for details. +## What are sexp queries? + +For the syntax of sexp queries, see [the manual +page](https://notmuchmail.org/doc/latest/man7/notmuch-sexp-queries.html). + +To see if your version of notmuch supports them, run + + $ notmuch config get built_with.sexp_queries + ## How do I search for messages that have no tags? -Unfortunately, there is no way to do this directly. +To do this directly, you need a recent notmuch compiled with sexp +queries (see above). You can then run + + $ notmuch search --query=sexp --output=messages '(not (tag *))' -However, it's possible to accomplish this using two searches in shell. First, +The same style of query should work for any prefix, even user defined +prefixes like `List` (see below). + +Otherwise, it's possible to accomplish this using two searches in shell. First, you need to query all tags in the database, and transform the result into a query that matches messages that have none of those tags: @@ -44,8 +72,8 @@ Next, use that to query the messages: ## How do I search for punctuation, specific special characters, or regexp? -Please see the [[notmuch-search-terms manual -page|manpages/notmuch-search-terms-7]] first. +Please see the [notmuch-search-terms manual +page](https://notmuchmail.org/doc/latest/man7/notmuch-search-terms.html) first. The main thing to understand is that Xapian, and therefore Notmuch, searches are closer to natural language searches than regular expression @@ -54,6 +82,17 @@ searches. Punctuation is mostly ignored. The boolean prefix searches (see Boolean and Probabilistic Prefixes in the man page), such as tag: or path: searches, need an exact match. +For [specific +fields](https://notmuchmail.org/doc/latest/man7/notmuch-search-terms.html#search-prefixes) +it is possible to use regex searches (although these are often +noticeably slower than native Xapian queries). The limited set of +fields is a quirk of implementation which requires a Xapian "value +slot" in the database schema. Adding regex support for more fields to +would require of adding more value slots to the schema. The +performance impact of that needs to be experimentally evaluated, and +assuming it is not too bad, some database upgrade code would need to +be written. + ## How do I search for folders or paths with spaces? The spaces in the names must be escaped. For example if you use bash or zsh, @@ -64,18 +103,9 @@ with this query: ## How do I search for the `List-Id:` header? -Currently there is no way to search for `List-Id:`. As a workaround, try using a -`to:` prefix search (which covers both `To:` and `Cc:` headers) on the mailing -list address. +See `index.header.` in `notmuch-config(1)` for details. TLD;R: -Limitations in the duplicate message handling are the main reason for not -indexing the `List-Id:` header. If you receive the same message via both the -list and directly (by way of `To:` or `Cc:`), only the first message encountered -will be indexed. Only the message received via the list will have `List-Id:`, -but you would expect a `List-Id:` search to find the message, regardless of the -order in which the duplicates were received. This is a more general problem than -just `List-Id:`, and once this has been resolved, adding `List-Id:` indexing is -trivial. + notmuch config set index.header.List List-Id ## Can I use notmuch with grsec? @@ -89,8 +119,8 @@ This is required in order to run the `pre-new` and `post-new` hooks. No. Tagging is message based. It is possible, however, to make tags propagate to all messages in a thread -using a little bit of scripting in the [[post-new -hook|manpages/notmuch-hooks-5]]. For example, to add the muted tag to all +using a little bit of scripting in the [post-new +hook](https://notmuchmail.org/doc/latest/man5/notmuch-hooks.html). For example, to add the muted tag to all messages in threads that have at least one message with the muted tag: THREAD_TAGS="muted" @@ -107,3 +137,24 @@ stop it from propagating again. See [notmuch-extract-patch](https://github.com/aaptel/notmuch-extract-patch). +## T150-tagging.sh is failing with Xapian 1.4.6 + +This is (probably) a bug in this point release of Xapian, should be +fixed in 1.4.7. Try reverting Xapian commit +`093999529acc2f86900d91fed0c7f7af301ab94a`, e.g. with the following +patch. + + + index 80e578b85..a47f14a68 100644 + --- a/xapian-core/backends/glass/glass_postlist.cc + +++ b/xapian-core/backends/glass/glass_postlist.cc + @@ -759,7 +759,7 @@ GlassPostList::open_nearby_postlist(const std::string & term_, + (void)need_pos; + if (term_.empty()) + RETURN(NULL); + - if (!this_db.get() || this_db->postlist_table.is_modified()) + + if (!this_db.get() || this_db->postlist_table.is_writable()) + RETURN(NULL); + RETURN(new GlassPostList(this_db, term_, cursor->clone())); + } +