summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Plugin/search.pm11
1 files changed, 10 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/search.pm b/IkiWiki/Plugin/search.pm
index 5e1d98a72..14bdb8dbc 100644
--- a/IkiWiki/Plugin/search.pm
+++ b/IkiWiki/Plugin/search.pm
@@ -54,6 +54,7 @@ sub pagetemplate (@) { #{{{
} #}}}
my $scrubber;
+my $stemmer;
sub index (@) { #{{{
my %params=@_;
@@ -105,7 +106,15 @@ sub index (@) { #{{{
);
my $tg = Search::Xapian::TermGenerator->new();
- $tg->set_stemmer(new Search::Xapian::Stem("english"));
+ if (! $stemmer) {
+ my $langcode=$ENV{LANG} || "en";
+ $langcode=~s/_.*//;
+ eval { $stemmer=Search::Xapian::Stem->new($langcode) };
+ if ($@) {
+ $stemmer=Search::Xapian::Stem->new("english");
+ }
+ }
+ $tg->set_stemmer($stemmer);
$tg->set_document($doc);
$tg->index_text($params{page}, 2);
$tg->index_text($title, 2);