Provided by: liblucy-perl_0.3.3-8_amd64 bug

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.