Lucy::Plan::Architecture - Configure major components of an index.
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(@_); }
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.
my $arch = Lucy::Plan::Architecture->new;
Constructor. Takes no arguments.
$architecture->register_doc_writer($writer);
Spawn a DataWriter and register() it with the supplied SegWriter, adding it to the SegWriter’s writer stack.
$architecture->register_doc_reader($reader);
Spawn a DocReader and register it with the supplied SegReader.
Lucy::Plan::Architecture isa Clownfish::Obj.
Copyright © 2010-2015 The Apache Software Foundation, Licensed under the
Apache License, Version 2.0.
Apache Lucy, Lucy, Apache, the Apache feather logo, and the Apache Lucy project logo are trademarks of The
Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their
respective owners.