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.