NAME
Lucy::Plan::Architecture - Configure major components of an index.
SYNOPSIS
package
MyArchitecture;
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;
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
$architecture
->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
$architecture
->register_doc_reader(
$reader
);
Spawn a DocReader and register it with the supplied SegReader.
reader - A SegReader.
INHERITANCE
Lucy::Plan::Architecture isa Clownfish::Obj.