]> Sergey Matveev's repositories - public-inbox.git/commitdiff
search: only sort by relevance if requested
authorEric Wong <e@80x24.org>
Tue, 25 Aug 2015 01:08:02 +0000 (01:08 +0000)
committerEric Wong <e@80x24.org>
Tue, 25 Aug 2015 01:42:30 +0000 (01:42 +0000)
Many of our internal search queries do not care about relevance,
but is used for proper thread displays.

lib/PublicInbox/Search.pm

index c61d4cf649559d5c46bf081041e9a459fb54f5ec..d780878975d9af03e2562cfd6249c1585eed68a9 100644 (file)
@@ -76,6 +76,8 @@ sub query {
        my ($self, $query_string, $opts) = @_;
        my $query = $self->qp->parse_query($query_string, QP_FLAGS);
 
+       $opts ||= {};
+       $opts->{relevance} = 1;
        $self->do_enquire($query, $opts);
 }
 
@@ -117,7 +119,11 @@ sub do_enquire {
 
        $query = Search::Xapian::Query->new(OP_AND, $query, $mail_query);
        $enquire->set_query($query);
-       $enquire->set_sort_by_relevance_then_value(TS, 0);
+       if ($opts->{relevance}) {
+               $enquire->set_sort_by_relevance_then_value(TS, 0);
+       } else {
+               $enquire->set_sort_by_value(TS, 0);
+       }
        $opts ||= {};
        my $offset = $opts->{offset} || 0;
        my $limit = $opts->{limit} || 50;