Gaute Hope <eg@gaute.vetsj.com> writes: > David Bremner writes on juni 15, 2017 22:20: >> Daniel Kahn Gillmor <dkg@fifthhorseman.net> writes: >>> >>> One of my long-standing wishes is to be able to say "show me mails in my >>> inbox from people who have replied to messages i've sent them". >>> >>> This could be re-framed as "show me threads in which i've participated, >>> where there are some messages flagged with 'inbox'". but generating a >>> huge list of all threads in which i've participated, just to be able to >>> do an intersection operation with a (much smaller) list of all threads >>> that have a message with the inbox flag seems like a pretty gross >>> inefficiency. >> >> At the moment the best we could do is essentially the same algorithm, >> but in C instead of shell / python. Threads are not documents in the >> database, so they can't efficiently be searched for. Of course we could >> change that, but those kind of changes take a fair amount of effort, and >> some careful design work. > > There are probably multiple earlier references to this, but here's one: > > id:1471858269.x2m28lgosh.astroid@strange > > matching against the whole thread vs the individual messages would be > very useful! For what it is worth, I've found this idea from Daniel intriguing and pretty useful in practice: "show me threads in which i've participated, where there are some messages flagged with 'inbox'" I implement it like this in my post-new hook: # All messages in threads in which I participate get tag:participated notmuch search --output=threads from:marmstrong | \ sed -e 's,^,+participated -- ,' | \ notmuch tag --batch On my database the query takes about two seconds to run, and lets me to searches like "tag:inbox and tag:participated". The set of threads found is typically a subset of "tag:inbox and to:marmstrong", but not always, and I now have two canned "inbox" searches: "participated" -> "tag:inbox and tag:participated" "me" -> "tag:inbox and to:marmstrong and not tag:participated" The "me" search tends to be new stuff, bot-generated notifications, and such. The "participated" is typically active conversations and stuff I've already engaged with, or initiated myself.