The ->allterms_{begin,end} methods of Xapian::Database already
filter match on prefix natively. Thus there's no need to do
filtering ourselves (unlike per-document ->termlist_{begin/end})
my $end = $self->{xdb}->allterms_end($pfx);
my %ret;
for (; $cur != $end; $cur++) {
- my $tn = $cur->get_termname;
- index($tn, $pfx) == 0 and
- $ret{substr($tn, length($pfx))} = undef;
+ $ret{substr($cur->get_termname, length($pfx))} = undef;
}
wantarray ? (sort keys %ret) : \%ret;
}
-
1;