Provided by: liblucy-perl_0.3.3-6build1_amd64 bug

NAME

       Lucy::Plan::Architecture - Configure major components of an index.

SYNOPSIS

           package MyArchitecture;
           use base qw( Lucy::Plan::Architecture );

           use LucyX::Index::ZlibDocWriter;
           use LucyX::Index::ZlibDocReader;

           sub register_doc_writer {
               my ( $self, $seg_writer ) = @_;
               my $doc_writer = LucyX::Index::ZlibDocWriter->new(
                   snapshot   => $seg_writer->get_snapshot,
                   segment    => $seg_writer->get_segment,
                   polyreader => $seg_writer->get_polyreader,
               );
               $seg_writer->register(
                   api       => "Lucy::Index::DocReader",
                   component => $doc_writer,
               );
               $seg_writer->add_writer($doc_writer);
           }

           sub register_doc_reader {
               my ( $self, $seg_reader ) = @_;
               my $doc_reader = LucyX::Index::ZlibDocReader->new(
                   schema   => $seg_reader->get_schema,
                   folder   => $seg_reader->get_folder,
                   segments => $seg_reader->get_segments,
                   seg_tick => $seg_reader->get_seg_tick,
                   snapshot => $seg_reader->get_snapshot,
               );
               $seg_reader->register(
                   api       => 'Lucy::Index::DocReader',
                   component => $doc_reader,
               );
           }

           package MySchema;
           use base qw( Lucy::Plan::Schema );

           sub architecture {
               shift;
               return MyArchitecture->new(@_);
           }

DESCRIPTION

       By default, a Lucy index consists of several main parts: lexicon, postings, stored
       documents, deletions, and highlight data.  The readers and writers for that data are
       spawned by Architecture.  Each component operates at the segment level; Architecture's
       factory methods are used to build up SegWriter and SegReader.

CONSTRUCTORS

   new()
           my $arch = Lucy::Plan::Architecture->new;

       Constructor.  Takes no arguments.

METHODS

   register_doc_writer(writer)
       Spawn a DataWriter and register() it with the supplied SegWriter, adding it to the
       SegWriter's writer stack.

       •   writer - A SegWriter.

   register_doc_reader(reader)
       Spawn a DocReader and register() it with the supplied SegReader.

       •   reader - A SegReader.

INHERITANCE

       Lucy::Plan::Architecture isa Lucy::Object::Obj.