# Plucene::Index::SegmentReader - phpMan

## NAME
    [Plucene::Index::SegmentReader] - the Segment reader

## SYNOPSIS
            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))
                    {  ... }

## DESCRIPTION
    The segment reader class.

## METHODS
  new
            my $seg_reader =
              [Plucene::Index::SegmentReader]->new( [Plucene::Index::SegmentInfo] $si);

    This will create a new [Plucene::Index::SegmentReader] object.

  has_deletions
            if ($seg_reader->has_deletions([Plucene::Index::SegmentInfo] $si))
                    {  ... }

  files
            my @files = $seg_reader->files;

  terms
            my @terms = $seg_reader->terms;

  document
            my $doc = $seg_reader->document($id);

  is_deleted
            if ($seg_reader->is_deleted($id)) {  .. }

  term_docs
            my [Plucene::Index::SegmentTermDocs] $docs
                    = $seg_reader->term_docs($term);

    This will return the [Plucene::Index::SegmentTermDocs] object for the
    given term.

  term_positions
            my [Plucene::Index::SegmentTermPositions] $pos
                    = $seg_reader->term_positions($term);

    This will return the [Plucene::Index::SegmentTermPositions] object for the
    given term.

  doc_freq
            my $doc_freq = $seg_reader->doc_freq($term);

    This returns the number of documents containing the passed term.

  num_docs
            my $num_docs = $seg_reader->num_docs;

    This is the number of documents, excluding deleted ones.

  max_doc
            my $max_doc = $seg_reader->max_doc;

  norms
            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 "norms" into the
    appropriate place in a string.

  norm_stream
            my [Plucene::Store::InputStream] $stream
                    = $seg_reader->norm_stream($field);

    This will return the [Plucene::Store::InputStream] for the passed field.

