aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/search.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-06-04 02:41:02 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-06-04 02:41:02 -0400
commitbf9829352b85e358f33061e65ece5d5515780840 (patch)
tree68256b5e58c93753c06e847de044adff76cd5380 /IkiWiki/Plugin/search.pm
parent47b5417ac0f3df81dcde5693deee4ff62c45b5f0 (diff)
downloadikiwiki-bf9829352b85e358f33061e65ece5d5515780840.tar
ikiwiki-bf9829352b85e358f33061e65ece5d5515780840.tar.gz
have the xapian stemmer use a language based on LANG
Diffstat (limited to 'IkiWiki/Plugin/search.pm')
-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);