Lucy::Index::DataWriter - Write data to an index.
# Abstract base class.
DataWriter is an abstract base class for writing index data, generally in segment-sized chunks. Each component of an index – e.g. stored fields, lexicon, postings, deletions – is represented by a DataWriter/DataReader pair.
Components may be specified per index by subclassing Architecture.
my $writer = MyDataWriter->new( snapshot => $snapshot, # required segment => $segment, # required polyreader => $polyreader, # required );
$data_writer->add_segment( reader => $reader # required doc_map => $doc_map # default: undef );
Add content from an existing segment into the one currently being written.
Complete the segment: close all streams, store metadata, etc.
my $int = $data_writer->format();
Every writer must specify a file format revision number, which should increment each time the format changes. Responsibility for revision checking is left to the companion DataReader.
Remove a segment’s data. The default implementation is a no-op, as all files within the segment directory will be automatically deleted. Subclasses which manage their own files outside of the segment system should override this method and use it as a trigger for cleaning up obsolete data.
$data_writer->merge_segment( reader => $reader # required doc_map => $doc_map # default: undef );
Move content from an existing segment into the one currently being written.
my $hashref = $data_writer->metadata();
Arbitrary metadata to be serialized and stored by the Segment. The default implementation supplies a hash with a single key-value pair for “format”.
my $snapshot = $data_writer->get_snapshot();
Accessor for “snapshot” member var.
my $segment = $data_writer->get_segment();
Accessor for “segment” member var.
my $poly_reader = $data_writer->get_polyreader();
Accessor for “polyreader” member var.
my $schema = $data_writer->get_schema();
Accessor for “schema” member var.
my $folder = $data_writer->get_folder();
Accessor for “folder” member var.
Lucy::Index::DataWriter 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.