From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 65CA91FB07 for ; Thu, 20 Aug 2020 20:25:00 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 13/23] search: make qparse_new an internal function Date: Thu, 20 Aug 2020 20:24:47 +0000 Message-Id: <20200820202457.21042-14-e@yhbt.net> In-Reply-To: <20200820202457.21042-1-e@yhbt.net> References: <20200820202457.21042-1-e@yhbt.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We'll probably be reusing it from another package in a future commit. --- lib/PublicInbox/Search.pm | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index f98513d3..e6200bfb 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -265,7 +265,7 @@ sub query { if ($query_string eq '' && !$opts->{mset}) { $self->{over_ro}->recent($opts); } else { - my $qp = qp($self); + my $qp = $self->{qp} //= qparse_new($self); my $qp_flags = $self->{qp_flags}; my $query = $qp->parse_query($query_string, $qp_flags); $opts->{relevance} = 1 unless exists $opts->{relevance}; @@ -334,17 +334,14 @@ sub _enquire_once { # retry_reopen callback sub stemmer { $X{Stem}->new($LANG) } # read-only -sub qp { +sub qparse_new ($) { my ($self) = @_; - my $qp = $self->{query_parser}; - return $qp if $qp; my $xdb = xdb($self); - # new parser - $qp = $X{QueryParser}->new; + my $qp = $X{QueryParser}->new; $qp->set_default_op(OP_AND()); $qp->set_database($xdb); - $qp->set_stemmer($self->stemmer); + $qp->set_stemmer(stemmer($self)); $qp->set_stemming_strategy(STEM_SOME()); $qp->set_max_wildcard_expansion(100); my $nvrp = $X{NumberValueRangeProcessor}; @@ -382,13 +379,12 @@ EOF while (my ($name, $prefix) = each %prob_prefix) { $qp->add_prefix($name, $_) foreach split(/ /, $prefix); } - - $self->{query_parser} = $qp; + $qp; } sub help { my ($self) = @_; - $self->qp; # parse altids + $self->{qp} //= qparse_new($self); # parse altids my @ret = @HELP; if (my $user_pfx = $self->{-user_pfx}) { push @ret, @$user_pfx;