# Plucene::Index::SegmentReader - the Segment reader - perldoc - [phpMan]

## NAME
    [Plucene::Index::SegmentReader](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentReader/markdown) - the Segment reader

## SYNOPSIS
            my $seg_reader =
              [Plucene::Index::SegmentReader](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentReader/markdown)->new( [Plucene::Index::SegmentInfo](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentInfo/markdown) $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](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentTermDocs/markdown) $docs
                    = $seg_reader->term_docs($term);

            my [Plucene::Index::SegmentTermPositions](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentTermPositions/markdown) $pos
                    = $seg_reader->term_positions($term);

            my [Plucene::Store::InputStream](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AStore%3A%3AInputStream/markdown) $stream
                    = $seg_reader->norm_stream($field);

            if ($seg_reader->is_deleted($id)) {  .. }
            if ($seg_reader->has_deletions([Plucene::Index::SegmentInfo](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentInfo/markdown) $si))
                    {  ... }

## DESCRIPTION
    The segment reader class.

## METHODS
  new
            my $seg_reader =
              [Plucene::Index::SegmentReader](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentReader/markdown)->new( [Plucene::Index::SegmentInfo](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentInfo/markdown) $si);

    This will create a new [Plucene::Index::SegmentReader](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentReader/markdown) object.

  has_deletions
            if ($seg_reader->has_deletions([Plucene::Index::SegmentInfo](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentInfo/markdown) $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](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentTermDocs/markdown) $docs
                    = $seg_reader->term_docs($term);

    This will return the [Plucene::Index::SegmentTermDocs](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentTermDocs/markdown) object for the given term.

  term_positions
            my [Plucene::Index::SegmentTermPositions](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentTermPositions/markdown) $pos
                    = $seg_reader->term_positions($term);

    This will return the [Plucene::Index::SegmentTermPositions](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AIndex%3A%3ASegmentTermPositions/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AStore%3A%3AInputStream/markdown) $stream
                    = $seg_reader->norm_stream($field);

    This will return the [Plucene::Store::InputStream](https://www.chedong.com/phpMan.php/perldoc/Plucene%3A%3AStore%3A%3AInputStream/markdown) for the passed field.

