Plucene::Plugin::Analyzer::MetaphoneAnalyzer - Metaphone analyzer
Filters StandardTokenizer with MetaphoneFilter
#!/usr/bin/perl use strict; use Plucene; use Plucene::Index::Writer; use Plucene::Plugin::Analyzer::MetaphoneAnalyzer; use Plucene::Search::IndexSearcher; use Plucene::QueryParser; my $db = "plucene_index"; my $writer = Plucene::Index::Writer->new($db, Plucene::Plugin::Analyzer::MetaphoneAnalyzer->new(), 1); $doc = Plucene::Document->new(); $doc->add(Plucene::Document::Field->Keyword(filename => 'test2.html')); $doc->add(Plucene::Document::Field->Text(title => 'Another file title')); $doc->add(Plucene::Document::Field->UnStored(content => 'Nothing HERE.')); $writer->add_document($doc); $writer->optimize; my $searcher = Plucene::Search::IndexSearcher->new($db); my $parser = Plucene::QueryParser->new({ analyzer => Plucene::Plugin::Analyzer::MetaphoneAnalyzer->new(), default => 'content', }); my $parsed = $parser->parse("nothink"); my @docs; my $hc = Plucene::Search::HitCollector->new( collect => sub { my ($self, $doc, $score) = @_; my $res = eval { $searcher->doc($doc); }; push @docs, $res if res; }, ); $searcher->search_hc($parsed, $hc); my @results = map {{ filename => $_->get('filename')->string, title => $_->get('title')->string, }} @docs; print "Results:\n"; foreach my $result (@results) { print "\t$result->{title} ($result->{filename})\n"; }
Alan Schwartz alansz@uic.edu
alansz@uic.edu
You may distribute this code under the same terms as Plucene himself.
To install Plucene::Plugin::Analyzer::MetaphoneAnalyzer, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Plucene::Plugin::Analyzer::MetaphoneAnalyzer
CPAN shell
perl -MCPAN -e shell install Plucene::Plugin::Analyzer::MetaphoneAnalyzer
For more information on module installation, please visit the detailed CPAN module installation guide.