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.