Perl Pluceneモジュールをいじくり回して、インデックスを作成したので、今はそれを検索して結果を返そうとしています。
インデックスを作成するための私のコードはここにあります...これをスキップして読むことができる可能性があります:
#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;
use Try::Tiny;
my $content = $ARGV[0];
my $doc = Plucene::Document->new;
my $i=0;
$doc->add(Plucene::Document::Field->Text(content => $content));
my $analyzer = Plucene::Analysis::SimpleAnalyzer->new();
if (!(-d "solutions" )) {
$i = 1;
}
if ($i)
{
my $writer = Plucene::Index::Writer->new("solutions", $analyzer, 1); #Third param is 1 if creating new index, 0 if adding to existing
$writer->add_document($doc);
my $doc_count = $writer->doc_count;
undef $writer; # close
}
else
{
my $writer = Plucene::Index::Writer->new("solutions", $analyzer, 0);
$writer->add_document($doc);
my $doc_count = $writer->doc_count;
undef $writer; # close
}
「solutions」というフォルダとそれにさまざまなファイルが作成されます...作成したドキュメントのインデックス付きファイルを想定しています。インデックスを検索したいのですが、何も思いつきません。これが私の試みであり、Plucene::CPANの簡単な例に導かれています。これは、コマンドラインからパラメータ「lol」を使用して上記を実行した後です。
#usr/bin/perl
use Plucene::Simple;
my $plucy = Plucene::Simple->open("solutions");
my @ids = $plucy->search("content : lol");
foreach(@ids)
{
print $_;
}
悲しいことに、何も印刷されません)-=。インデックスのクエリは単純なはずですが、おそらく私自身の愚かさがこれを行う能力を制限しているのでしょう。