The segment reader
my $seg_reader = Plucene::Index::SegmentReader->new( Plucene::Index::SegmentInfo $si); my @files = $seg_reader->files; my @terms = $seg_reader->terms; my $doc = $seg_reader->document($id); my $doc_freq = $seg_reader->doc_freq($term); my $max_doc = $seg_reader->max_doc; my $norms = $seg_reader->norms($field, $offset); my Plucene::Index::SegmentTermDocs $docs = $seg_reader->term_docs($term); my Plucene::Index::SegmentTermPositions $pos = $seg_reader->term_positions($term); my Plucene::Store::InputStream $stream = $seg_reader->norm_stream($field); if ($seg_reader->is_deleted($id)) { .. } if ($seg_reader->has_deletions(Plucene::Index::SegmentInfo $si)) { ... }
The segment reader class.
my $seg_reader = Plucene::Index::SegmentReader->new( Plucene::Index::SegmentInfo $si);
This will create a new Plucene::Index::SegmentReader object.
if ($seg_reader->has_deletions(Plucene::Index::SegmentInfo $si)) { ... }
my @files = $seg_reader->files;
my @terms = $seg_reader->terms;
my $doc = $seg_reader->document($id);
if ($seg_reader->is_deleted($id)) { .. }
my Plucene::Index::SegmentTermDocs $docs = $seg_reader->term_docs($term);
This will return the Plucene::Index::SegmentTermDocs object for the given term.
my Plucene::Index::SegmentTermPositions $pos = $seg_reader->term_positions($term);
This will return the Plucene::Index::SegmentTermPositions object for the given term.
my $doc_freq = $seg_reader->doc_freq($term);
This returns the number of documents containing the passed term.
my $num_docs = $seg_reader->num_docs;
This is the number of documents, excluding deleted ones.
my $max_doc = $seg_reader->max_doc;
my $norms = $seg_reader->norms($field, $offset);
This returns the byte-encoded normalisation factor for the passed field. This is used by the search code to score documents.
Note we are not using the 'offset' and 'bytes' arguments per the Java. Instead, callers should use substr to put the result of \*(L"norms\*(R" into the appropriate place in a string.
my Plucene::Store::InputStream $stream = $seg_reader->norm_stream($field);
This will return the Plucene::Store::InputStream for the passed field.