Actually, the Xapian aspect of it turned out to be easy once I learned ->set_collapse_key.
Getting the tests and compatibility with existing (pre-upgrade) inboxes was more work. It requires "public-inbox-index --reindex" to activate; but PATCH 5/5 makes it safe to upgrade WWW either before or after --reindex. That means BOFHs can upgrade without regard to ordering. Tested with w3m, links, and lynx (I actually split out my lynx fix separately): https://public-inbox.org/meta/20200822004125.9458-...@80x24.org/ TODO: CLI tool support, HTML interface, JMAP, etc... Eric Wong (5): searchidxshard: clear $msgref buffer properly searchidx: put all shard-related stuff in SearchIdxShard.pm searchidx: index THREADID in Xapian search: support downloading mboxes results with full thread mbox: disable "&t" on existing Xapian until full reindex Documentation/standards.perl | 4 +++ lib/PublicInbox/Mbox.pm | 54 +++++++++++++++++++++++++------ lib/PublicInbox/Over.pm | 31 +++++++++++++++++- lib/PublicInbox/OverIdx.pm | 18 +++++------ lib/PublicInbox/Search.pm | 16 +++++++-- lib/PublicInbox/SearchIdx.pm | 51 +++++++++-------------------- lib/PublicInbox/SearchIdxShard.pm | 48 ++++++++++++++++++++++----- lib/PublicInbox/SearchQuery.pm | 8 +++-- lib/PublicInbox/SearchView.pm | 30 +++++++++++------ lib/PublicInbox/Smsg.pm | 3 +- lib/PublicInbox/V2Writable.pm | 19 ++++++++--- t/init.t | 1 + t/over.t | 13 ++++---- t/psgi_search.t | 39 ++++++++++++++++++++-- 14 files changed, 244 insertions(+), 91 deletions(-) -- unsubscribe: one-click, see List-Unsubscribe header archive: https://public-inbox.org/meta/