KinoSearch::Index::SegUser(Contributed Perl DocumKinoSearch::Index::Segment(3)NAMEKinoSearch::Index::Segment - Warehouse for information about one
segment of an inverted index.
SYNOPSIS
# Index-time.
package MyDataWriter;
use base qw( KinoSearch::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( KinoSearch::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
KinoSearch'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.
METHODSadd_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.
INHERITANCEKinoSearch::Index::Segment isa KinoSearch::Object::Obj.
COPYRIGHT AND LICENSE
Copyright 2005-2010 Marvin Humphrey
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
perl v5.14.1 2011-06-20 KinoSearch::Index::Segment(3)