Provided by: liblucy-perl_0.3.3-8_amd64
NAME
Lucy::Index::Segment - Warehouse for information about one segment of an inverted index.
SYNOPSIS
# Index-time. package MyDataWriter; use base qw( Lucy::Index::DataWriter ); sub finish { my $self = shift; my $segment = $self->get_segment; my $metadata = $self->SUPER::metadata(); $metadata->{foo} = $self->get_foo; $segment->store_metadata( key => 'my_component', metadata => $metadata ); } # Search-time. package MyDataReader; use base qw( Lucy::Index::DataReader ); sub new { my $self = shift->SUPER::new(@_); my $segment = $self->get_segment; my $metadata = $segment->fetch_metadata('my_component'); if ($metadata) { $self->set_foo( $metadata->{foo} ); ... } return $self; }
DESCRIPTION
Apache Lucy's indexes are made up of individual "segments", each of which is is an independent inverted index. On the file system, each segment is a directory within the main index directory whose name starts with "seg_": "seg_2", "seg_5a", etc. Each Segment object keeps track of information about an index segment: its fields, document count, and so on. The Segment object itself writes one file, "segmeta.json"; besides storing info needed by Segment itself, the "segmeta" file serves as a central repository for metadata generated by other index components -- relieving them of the burden of storing metadata themselves.
METHODS
add_field(field) Register a new field and assign it a field number. If the field was already known, nothing happens. • field - Field name. Returns: the field's field number, which is a positive integer. store_metadata( [labeled params] ) Store arbitrary information in the segment's metadata Hash, to be serialized later. Throws an error if "key" is used twice. • key - String identifying an index component. • metadata - JSON-izable data structure. fetch_metadata(key) Fetch a value from the Segment's metadata hash. field_num(field) Given a field name, return its field number for this segment (which may differ from its number in other segments). Return 0 (an invalid field number) if the field name can't be found. • field - Field name. field_name(field_num) Given a field number, return the name of its field, or undef if the field name can't be found. get_name() Getter for the object's seg name. get_number() Getter for the segment number. set_count(count) Setter for the object's document count. get_count() Getter for the object's document count.
INHERITANCE
Lucy::Index::Segment isa Lucy::Object::Obj.