find threads where I and Jian participated but not Dave
Matt Armstrong
marmstrong at google.com
Wed Jun 21 13:04:53 PDT 2017
Gaute Hope <eg at gaute.vetsj.com> writes:
> David Bremner writes on juni 15, 2017 22:20:
>> Daniel Kahn Gillmor <dkg at 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 at 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.
More information about the notmuch
mailing list