NAME
Lucy::Analysis::PolyAnalyzer - Multiple Analyzers in series.
SYNOPSIS
my $schema = Lucy::Plan::Schema->new;my $polyanalyzer = Lucy::Analysis::PolyAnalyzer->new(language => 'en',);my $type = Lucy::Plan::FullTextType->new(analyzer => $polyanalyzer,);$schema->spec_field( name => 'title', type => $type );$schema->spec_field( name => 'content', type => $type );
DESCRIPTION
A PolyAnalyzer is a series of Analyzers, each of which will be called upon to "analyze" text in turn. You can either provide the Analyzers yourself, or you can specify a supported language, in which case a PolyAnalyzer consisting of a CaseFolder, a RegexTokenizer, and a SnowballStemmer will be generated for you.
Supported languages:
en => English,da => Danish,de => German,es => Spanish,fi => Finnish,fr => French,hu => Hungarian,it => Italian,nl => Dutch,no => Norwegian,pt => Portuguese,ro => Romanian,ru => Russian,sv => Swedish,tr => Turkish,
CONSTRUCTORS
new( [labeled params] )
my $analyzer = Lucy::Analysis::PolyAnalyzer->new(language => 'es',);# or...my $case_folder = Lucy::Analysis::CaseFolder->new;my $tokenizer = Lucy::Analysis::RegexTokenizer->new;my $stemmer = Lucy::Analysis::SnowballStemmer->new( language => 'en' );my $polyanalyzer = Lucy::Analysis::PolyAnalyzer->new(analyzers => [ $case_folder, $whitespace_tokenizer, $stemmer, ], );
- •
-
language - An ISO code from the list of supported languages.
- •
-
analyzers - An array of Analyzers. The order of the analyzers matters. Don't put a SnowballStemmer before a RegexTokenizer (can't stem whole documents or paragraphs -- just individual words), or a SnowballStopFilter after a SnowballStemmer (stemmed words, e.g. "themselv", will not appear in a stoplist). In general, the sequence should be: normalize, tokenize, stopalize, stem.
METHODS
get_analyzers()
Getter for "analyzers" member.
INHERITANCE
Lucy::Analysis::PolyAnalyzer isa Lucy::Analysis::Analyzer isa Lucy::Object::Obj.