# Plucene::Index::Reader - phpMan

## NAME
    [Plucene::Index::Reader] - Abstract class for accessing an index

## DESCRIPTION
    IndexReader is an abstract class, providing an interface for accessing
    an index. Search of an index is done entirely through this abstract
    interface, so that any subclass which implements it is searchable.

    Concrete subclasses of IndexReader are usually constructed with a call
    to the static method "open".

    For efficiency, in this API documents are often referred to via document
    numbers, non-negative integers which each name a unique document in the
    index. These document numbers are ephemeral--they may change as
    documents are added to and deleted from an index. Clients should thus
    not rely on a given document having the same number between sessions.

## METHODS
  new
            my $reader = [Plucene::Index::Reader]->new($dir_name);

    This will create a new [Plucene::Index::Reader] with the passed in
    directory.

  open
            # If there is only one segment
            my [Plucene::Index::SegmentReader] $seg_read = $reader->open;

            # If there are many segments
            my [Plucene::Index::SegmentsReader] $seg_read = $reader->open;

    Returns an IndexReader reading the index in the given Directory.

  last_modified
            my $last_modified = [Plucene::Index::Reader]->last_modified($directory);

  index_exists
            if ([Plucene::Index::Reader]->index_exists($directory)){ ... }

  is_locked
            if ([Plucene::Index::Reader]->is_locked($directory)){ ... }

  delete
            $reader->delete($doc);

  delete_term
            $reader->delete_term($term);

    This will delete all the documents which contain the passed term.

  close
            $reader->close;

  unlock
            $reader->unlock($directory);

  num_docs / max_doc / document / is_deleted / norms / terms /
doc_freq / term_docs / term_positions / _do_delete / _do_close
    These must be defined in a subclass

