Previous search queries already set sort order on the Enquire
object, altering the ordering of results and was causing
messages to be redundantly downloaded via POST /$INBOX/?q=$QUERY&x=m
So stop caching the Search::Xapian::Enquire object since it
wasn't providing any measurable performance improvement.
sub _enquire_once {
my ($self, $query, $opts) = @_;
sub _enquire_once {
my ($self, $query, $opts) = @_;
- my $enquire = enquire($self);
+ my $enquire = Search::Xapian::Enquire->new($self->{xdb});
$enquire->set_query($query);
$opts ||= {};
my $desc = !$opts->{asc};
if (($opts->{mset} || 0) == 2) {
$enquire->set_docid_order(Search::Xapian::ENQ_ASCENDING());
$enquire->set_weighting_scheme(Search::Xapian::BoolWeight->new);
$enquire->set_query($query);
$opts ||= {};
my $desc = !$opts->{asc};
if (($opts->{mset} || 0) == 2) {
$enquire->set_docid_order(Search::Xapian::ENQ_ASCENDING());
$enquire->set_weighting_scheme(Search::Xapian::BoolWeight->new);
- delete $self->{enquire};
} elsif ($opts->{relevance}) {
$enquire->set_sort_by_relevance_then_value(TS, $desc);
} else {
} elsif ($opts->{relevance}) {
$enquire->set_sort_by_relevance_then_value(TS, $desc);
} else {
-sub enquire {
- my ($self) = @_;
- $self->{enquire} ||= Search::Xapian::Enquire->new($self->{xdb});
-}
-
sub help {
my ($self) = @_;
$self->qp; # parse altids
sub help {
my ($self) = @_;
$self->qp; # parse altids