Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Plucene::Plugin::AnalyUser:ContributedePerluDon::Analyzer::SnowballAnalyzer(3)

NAME
       Plucene::Plugin::Analyzer::SnowballAnalyzer - Stemmed analyzer with
       Lingua::Stem::Snowball and Lingua::StopWords

DESCRIPTION
       Filters StandardTokenizer with SnowballAnalyzer.

       Change $Plucene::Plugin::Analysis::SnowballAnalyzer::LANG to the
       language	of your	choice.	 (see Lingua::Stem::Snowball documentation for
       all available languages).

EXAMPLE
	 #!/usr/bin/perl

	 use strict;
	 use Plucene;
	 use Plucene::Index::Writer;
	 use Plucene::Plugin::Analyzer::SnowballAnalyzer;
	 use Plucene::Search::IndexSearcher;
	 use Plucene::QueryParser;

	 $Plucene::Plugin::Analyzer::SnowballAnalyzer::LANG = 'fr';

	 my $db	= "plucene_index";

	 my $writer = Plucene::Index::Writer->new($db, Plucene::Plugin::Analyzer::SnowballAnalyzer->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.	la folie...'));
	 $writer->add_document($doc);

	 $doc =	Plucene::Document->new();
	 $doc->add(Plucene::Document::Field->Keyword(filename => 'test2.html'));
	 $doc->add(Plucene::Document::Field->Text(title	=> 'Fichier en franA<section>ais'));
	 $doc->add(Plucene::Document::Field->UnStored(content => 'Vive le franA<section>ais! Je	t\'aime	tendrement...'));
	 $writer->add_document($doc);

	 $writer->optimize;

	 my $searcher =	Plucene::Search::IndexSearcher->new($db);
	 my $parser = Plucene::QueryParser->new({
	       analyzer	=> Plucene::Plugin::Analyzer::SnowballAnalyzer->new(),
	       default => 'content',
	 });
	 my $parsed = $parser->parse("la +france +TENDRE title:fichier");

	 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
       Fabien POTENCIER, "fabpot@cpan.org"

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

POD ERRORS
       Hey! The	above document had some	coding errors, which are explained
       below:

       Around line 51:
	   Non-ASCII character seen before =encoding in
	   'franA<section>ais'));'. Assuming CP1252

perl v5.32.0			Plucene::Plugin::Analyzer::SnowballAnalyzer(3)

NAME | DESCRIPTION | EXAMPLE | AUTHOR | LICENSE | POD ERRORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Plucene::Plugin::Analyzer::SnowballAnalyzer&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help