Gnus development mailing list
 help / color / mirror / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: ding@gnus.org
Subject: Re: [RFC] Gnus generalized search, part II
Date: Fri, 28 Apr 2017 20:57:58 -0700	[thread overview]
Message-ID: <87wpa3hnll.fsf@ericabrahamsen.net> (raw)
In-Reply-To: <87y3ukf716.fsf@hanan>

Andrew Cohen <cohen@bu.edu> writes:

>>>>>> "Eric" == Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>     Eric> Eric Abrahamsen <eric@ericabrahamsen.net> writes: [...]
>
>     >> If this only ever gets called from the summary buffer (possibly
>     >> an incorrect assumption), would it make sense to pass the value
>     >> of gnus-newsgroup-threads to `gnus-search-refer-thread' instead
>     >> of bare message ids? gnus-newsgroup-threads already has the
>     >> reference headers in it, and would get us halfway there
>     >> already...
>
>     Eric> Of course I realized right afterwards that this or something
>     Eric> like it is exactly what you were talking about doing. I'm
>     Eric> getting there, just slowly...
>
>
> :)
>
> The other reason for not using the search-engine based notion of
> threading: my threads are often spread out over multiple servers (and
> even multiple backend types, like imap and gmane). With nnselect gnus
> has no problem making threads that span these things, and previously
> with the old nnir and the current nnselect thread referral will
> work happily in this context (that is, gnus will create the thread with
> all the articles that have been retrieved even crossing server and
> backend types; then thread referral will attempt to consult ALL relevant
> servers and backends to find as many thread related articles as
> possible). Using the native thread searching won't be able to do this
> well.

I wonder if we have a misunderstanding... My original assumption was
that native thread searching would only be responsible for locating the
relevant messages, *not* for creating thread structures. Ie, engines
supply lists of messages from their respective backends that they
believe to be relevant to the original list of message-ids. All those
messages get dumped in flat list into a summary buffer, and Gnus does
its usual thread construction routines. "notmuch --thread" and "mairix
--threads" return flat lists to begin with. IMAP THREAD returns nested
lists, but I'd been assuming that I would flatten those results out
before passing them to nnselect.

Each engine pretty much does the same trick of
references/in-reply-to/maybe-subject, but I have to believe they do a
more efficient job of it in their own domains. But then we let Gnus do
the final threading before presenting the results to the user.

> I do think the option should be available to do a native thread search,
> but I strongly think the default should be the more general version that
> we have now. It isn't particularly slow (and I doubt its significantly,
> if at all, slower than native thread searching---it just lets gnus
> construct the proper list of message ids rather than using a native
> list).
>
> I prefer passing the list of message-ids to gnus-search (rather than a
> gnus construct like the dependencies hash), and then letting gnus-search
> create the proper query and do the search (this is more or less how
> things are now: nnselect calls nnimap-make-thread-query with the set of
> message-ids to construct the query and then subsequently calls
> nnir-run-query to do the search. We could keep the two steps or combine
> into one function).

I'm happy with this, I really don't have an opinion on where the
reference deconstruction should happen.

> Aside from being simple and clean this has the advantage of allowing
> the function to be called for any user-generated (rather than
> gnus-generated) list of message-ids, not just a real thread. That way
> you could use this function to make an nnselect group of a bunch of
> related messages that weren't necessarily part of a singlet thread.
> For example we have several threads related to this new stuff going on
> in gmane.emacs.gnus.general and emacs-devel (and as soon as I get
> around to posting my survey gmane.emacs.gnus.user :)) and this would
> allow all of these things to appear as one group.

If my assumptions above are correct, then this is how it would work,
even with native thread searching.

Does that make sense?




  reply	other threads:[~2017-04-29  3:57 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-21 21:35 Eric Abrahamsen
2017-04-22  0:16 ` Andrew Cohen
2017-04-22  7:50   ` Eli Zaretskii
2017-04-22  8:00     ` Andrew Cohen
2017-04-22 19:53 ` Lars Ingebrigtsen
2017-04-22 20:26   ` Eric Abrahamsen
2017-04-24 20:30   ` Eric Abrahamsen
2017-04-26  4:41     ` Andrew Cohen
2017-04-26  6:31       ` Adam Sjøgren
2017-04-26  7:39         ` Saša Janiška
2017-04-26 16:07           ` Eric Abrahamsen
2017-04-26  9:21       ` Joakim Jalap
2017-04-26 15:51       ` Eric Abrahamsen
     [not found]       ` <7e7ccca805864b5398551cc74123df11@HE1PR01MB1898.eurprd01.prod.exchangelabs.com>
     [not found]         ` <87k2653oum.fsf@delle7240>
2017-04-27 19:35           ` Eric Abrahamsen
2017-04-28  1:18           ` Andrew Cohen
     [not found]           ` <cb06d28e83ab4a6cab1b3cd02fc7e554@HE1PR01MB1898.eurprd01.prod.exchangelabs.com>
     [not found]             ` <87zif16j2t.fsf@delle7240>
2017-04-28  9:16               ` Andrew Cohen
2017-04-26  8:18     ` Andrew Cohen
2017-04-26 16:37       ` Eric Abrahamsen
2017-04-26 22:31         ` Eric Abrahamsen
2017-04-27  4:27           ` Andrew Cohen
2017-04-27 18:22             ` Eric Abrahamsen
2017-04-28  1:15               ` Andrew Cohen
2017-04-28 18:23                 ` Eric Abrahamsen
2017-04-28 20:52                   ` Eric Abrahamsen
2017-04-28 23:26                     ` Andrew Cohen
2017-04-29  3:57                       ` Eric Abrahamsen [this message]
2017-04-29  9:37                         ` Andrew Cohen
2017-04-30  5:13                           ` Eric Abrahamsen
2017-04-28 23:34                   ` Andrew Cohen
2017-04-29  4:16                     ` Eric Abrahamsen
2017-04-29 21:20                 ` Harry Putnam
2017-04-30  0:15                   ` Andrew Cohen
2017-04-26 17:50       ` Eric Abrahamsen
2017-04-26  8:22     ` Andrew Cohen
2017-04-23 13:48 ` Dan Christensen
2017-04-23 17:19   ` Eric Abrahamsen
2017-04-23 17:59     ` Dan Christensen
2017-04-23 23:22       ` Eric Abrahamsen
2017-04-24  1:37         ` Dan Christensen
2017-04-24 21:02           ` Eric Abrahamsen
2017-06-10  4:46     ` Eric Abrahamsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87wpa3hnll.fsf@ericabrahamsen.net \
    --to=eric@ericabrahamsen.net \
    --cc=ding@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).