# 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,
# See the License for the specific language governing permissions and
# limitations under the License.

=head1 NAME

Lucy::Analysis::PolyAnalyzer - Multiple Analyzers in series.


    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 );


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,


=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, ], );


=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.


=head1 METHODS

=head2 get_analyzers()

Getter for "analyzers" member.


Lucy::Analysis::PolyAnalyzer isa L<Lucy::Analysis::Analyzer> isa L<Lucy::Object::Obj>.