Alan Schwartz > Plucene-Plugin-Analyzer-MetaphoneAnalyzer-1.02 > Plucene::Plugin::Analyzer::MetaphoneAnalyzer

Download:
Plucene-Plugin-Analyzer-MetaphoneAnalyzer-1.02.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 1.02   Source  

NAME ^

Plucene::Plugin::Analyzer::MetaphoneAnalyzer - Metaphone analyzer

DESCRIPTION ^

Filters StandardTokenizer with MetaphoneFilter

EXAMPLE ^

  #!/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";
  }

AUTHOR ^

Alan Schwartz alansz@uic.edu

LICENSE ^

You may distribute this code under the same terms as Plucene himself.

syntax highlighting: