# Auto-generated file -- DO NOT EDIT!!!!! =head1 NAME KinoSearch::Plan::Architecture - Configure major components of an index. =head1 SYNOPSIS package MyArchitecture; use base qw( KinoSearch::Plan::Architecture ); use KSx::Index::ZlibDocWriter; use KSx::Index::ZlibDocReader; sub register_doc_writer { my ( $self, $seg_writer ) = @_; my $doc_writer = KSx::Index::ZlibDocWriter->new( snapshot => $seg_writer->get_snapshot, segment => $seg_writer->get_segment, polyreader => $seg_writer->get_polyreader, ); $seg_writer->register( api => "KinoSearch::Index::DocReader", component => $doc_writer, ); $seg_writer->add_writer($doc_writer); } sub register_doc_reader { my ( $self, $seg_reader ) = @_; my $doc_reader = KSx::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 => 'KinoSearch::Index::DocReader', component => $doc_reader, ); } package MySchema; use base qw( KinoSearch::Plan::Schema ); sub architecture { shift; return MyArchitecture->new(@_); } =head1 DESCRIPTION By default, a KinoSearch 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. =head1 METHODS =head2 register_doc_writer(writer) Spawn a DataWriter and register() it with the supplied SegWriter, adding it to the SegWriter's writer stack. =over =item * B - A SegWriter. =back =head2 register_doc_reader(reader) Spawn a DocReader and register() it with the supplied SegReader. =over =item * B - A SegReader. =back =head1 INHERITANCE KinoSearch::Plan::Architecture isa L. =head1 COPYRIGHT AND LICENSE Copyright 2005-2010 Marvin Humphrey This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut