6/20

Querying

    use Plucene;
    use Plucene::QueryParser;
    use Plucene::Analysis::SimpleAnalyzer;
    use Plucene::Search::IndexSearcher;
    use Plucene::Search::HitCollector;
    use strict;
    my $parser = Plucene::QueryParser->new({
	   analyzer => Plucene::Analysis::SimpleAnalyzer->new(),
	   default  => "content" # Default field for non-specified queries
    });
    my $q = shift or die "Must have a query";
    my $query = $parser->parse($q);
    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);
    for (@docs) {
	print "====\n";
	print $_->get('content')->string;
    }