+
+ #XAPIAN
+ eval {
+ my @words = split /\s+/, $plain_description;
+ my $stem_words = $stemmer->stem( \@words );
+ my $doc = Search::Xapian::Document->new()
+ or die "can't create doc object for $i: $!\n";
+ if ($doc->set_data($i)){
+ warn "can't set_data in doc object for $i: $!\n";
+ }
+ for my $j (0 .. (@$stem_words-1)) {
+ next if $stem_words->[$j] =~ /^\s*$/o;
+ if ($doc->add_posting($stem_words->[$j], $j)) {
+ warn "can't add word $stem_words->[$j] $j: $!\n";
+ }
+ }
+ $xapian_db->add_document($doc)
+ or warn "failed to add document: $i\n";
+ };
+ die $@ if $@;
+
+ $descriptions_db{$i} = $only_desc;