#usr/bin/perl
use Plucene::Document;
use Plucene::Document::Field;
use Plucene::Index::Writer;
use Plucene::Analysis::SimpleAnalyzer;
use Plucene::Search::HitCollector;
use Plucene::Search::IndexSearcher;
use Plucene::QueryParser;
my $content = "I am the law";
my $doc = Plucene::Document->new;
$doc->add(Plucene::Document::Field->Text(content => $content));
$doc->add(Plucene::Document::Field->Text(author => "Philip Johnson"));
my $analyzer = Plucene::Analysis::SimpleAnalyzer->new();
my $writer = Plucene::Index::Writer->new("my_index", $analyzer, 1);
$writer->add_document($doc);
undef $writer; # close
my $searcher = Plucene::Search::IndexSearcher->new("my_index");
my @docs;
my $hc = Plucene::Search::HitCollector->new(collect => sub {
my ($self, $doc, $score) = @_;
push @docs, $searcher->doc($doc);
});
$searcher->search_hc($query => $hc);
このコードが何をするのか理解できません。おなじみの Perl 構文とその先で何が起こっているかは理解していますが、Lucene ドキュメント、Index::Writer などとは何ですか? 最も重要なことは、このコードを実行すると、何かが生成されることを期待していますが、何も表示されません。
アナライザーとは何かを知っています... CPAN にリンクされているこのドキュメントのおかげです: http://onjava.com/pub/a/onjava/2003/01/15/lucene.html?page=2。しかし、このコードを実行する理由がわかりません。何もしないようです...