about summary refs log tree commit homepage
path: root/lib/PublicInbox/Search.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-08-25 01:08:02 +0000
committerEric Wong <e@80x24.org>2015-08-25 01:42:30 +0000
commit04939d5db13168e127c6b18dd366c21c16cf170a (patch)
tree40a512143c92c234c93e1db46e0183638839fb0a /lib/PublicInbox/Search.pm
parent71040e5ff8a68eb0cfaf20c273e227cdceb9dc23 (diff)
downloadpublic-inbox-04939d5db13168e127c6b18dd366c21c16cf170a.tar.gz
Many of our internal search queries do not care about relevance,
but is used for proper thread displays.
Diffstat (limited to 'lib/PublicInbox/Search.pm')
-rw-r--r--lib/PublicInbox/Search.pm8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index c61d4cf6..d7808789 100644
--- a/lib/PublicInbox/Search.pm
+++ b/lib/PublicInbox/Search.pm
@@ -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;