# Auto-generated file -- DO NOT EDIT!!!!!
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
=head1 NAME
Lucy::Analysis::PolyAnalyzer - Multiple Analyzers in series.
=head1 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 );
=head1 DESCRIPTION
A PolyAnalyzer is a series of L<Analyzers|Lucy::Analysis::Analyzer>,
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
L<CaseFolder|Lucy::Analysis::CaseFolder>, a
L<RegexTokenizer|Lucy::Analysis::RegexTokenizer>, and a
L<SnowballStemmer|Lucy::Analysis::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,
=head1 CONSTRUCTORS
=head2 new( I<[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, ], );
=over
=item *
B<language> - An ISO code from the list of supported languages.
=item *
B<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.
=back
=head1 METHODS
=head2 get_analyzers()
Getter for "analyzers" member.
=head1 INHERITANCE
Lucy::Analysis::PolyAnalyzer isa L<Lucy::Analysis::Analyzer> isa L<Lucy::Object::Obj>.
=cut