diff options
author | Eric Wong <e@80x24.org> | 2023-06-09 10:31:07 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2023-06-09 18:58:28 +0000 |
commit | 56cdc78884fdc7378c727d9aa8861acbc56940f9 (patch) | |
tree | 774dff00b07c2b5f7c9de69252ee2722f22ff53b | |
parent | 8636f8aa819e15e7eac6f567e8b42f2ed5cbe79f (diff) | |
download | public-inbox-56cdc78884fdc7378c727d9aa8861acbc56940f9.tar.gz |
Reusing this bit seems to make sense as mail and code search are similar enough w.r.t. setting up sort options. This deduplication will become more useful as -cindex will likely combine code and mail search to generate associations between inboxes and code repos.
-rw-r--r-- | lib/PublicInbox/CodeSearch.pm | 11 | ||||
-rw-r--r-- | lib/PublicInbox/Search.pm | 8 |
2 files changed, 7 insertions, 12 deletions
diff --git a/lib/PublicInbox/CodeSearch.pm b/lib/PublicInbox/CodeSearch.pm index 1dfc124f..a5ccce03 100644 --- a/lib/PublicInbox/CodeSearch.pm +++ b/lib/PublicInbox/CodeSearch.pm @@ -106,16 +106,7 @@ sub mset { $qry = $PublicInbox::Search::X{Query}->new( PublicInbox::Search::OP_FILTER(), $qry, 'T'.'c'); - - my $enq = $PublicInbox::Search::X{Enquire}->new($self->xdb); - $enq->set_query($qry); - if ($opt->{relevance}) { - $enq->set_sort_by_relevance_then_value(CT, !$opt->{asc}); - } else { - $enq->set_sort_by_value_then_relevance(CT, !$opt->{asc}); - } - $self->retry_reopen($self->can('enquire_once'), $enq, - $opt->{offset} || 0, $opt->{limit} || 50); + $self->do_enquire($qry, $opt, CT); } 1; diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index 6986cb88..a4fef17b 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -390,7 +390,11 @@ sub mset { $qry = $X{Query}->new(OP_FILTER(), $qry, $X{Query}->new(OP_VALUE_RANGE(), THREADID, $tid, $tid)); } + do_enquire($self, $qry, $opt, TS); +} +sub do_enquire { # shared with CodeSearch + my ($self, $qry, $opt, $col) = @_; my $enq = $X{Enquire}->new(xdb($self)); $enq->set_query($qry); my $rel = $opt->{relevance} // 0; @@ -401,9 +405,9 @@ sub mset { $enq->set_weighting_scheme($X{BoolWeight}->new); $enq->set_docid_order($ENQ_ASCENDING); } elsif ($rel == 0) { - $enq->set_sort_by_value_then_relevance(TS, !$opt->{asc}); + $enq->set_sort_by_value_then_relevance($col, !$opt->{asc}); } else { # rel > 0 - $enq->set_sort_by_relevance_then_value(TS, !$opt->{asc}); + $enq->set_sort_by_relevance_then_value($col, !$opt->{asc}); } # `lei q -t / --threads' or JMAP collapseThreads; but don't collapse |