Documentation  › org.apache.lucene.index  › IndexReader
 
 


  IndexReader
  public abstract

  Inherits From:   Object
  Conforms To:   none
  Declared In:   org.apache.lucene.index


Class 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.



Class Variables
 
None declared in this class.


Instance Variables
 
None declared in this class.


Constructors
 
IndexReader
protected IndexReader( Directory directory )

Constructor used if IndexReader is not owner of its directory. This is used for IndexReaders that are used within other IndexReaders that take care or locking directories.


Class Methods
 
getCurrentVersion
public static long getCurrentVersion( Directory directory ) throws IOException

Reads version number from segments files. The version number counts the number of changes of the index.


getCurrentVersion
public static long getCurrentVersion( File directory ) throws IOException

Reads version number from segments files. The version number counts the number of changes of the index.


getCurrentVersion
public static long getCurrentVersion( String directory ) throws IOException

Reads version number from segments files. The version number counts the number of changes of the index.


indexExists
public static boolean indexExists( Directory directory ) throws IOException

Returns true if an index exists at the specified directory. If the directory does not exist or if there is no index in it.


indexExists
public static boolean indexExists( File directory )

Returns true if an index exists at the specified directory. If the directory does not exist or if there is no index in it.


indexExists
public static boolean indexExists( String directory )

Returns true if an index exists at the specified directory. If the directory does not exist or if there is no index in it. false is returned.


isLocked
public static boolean isLocked( Directory directory ) throws IOException

Returns true iff the index in the named directory is currently locked.


isLocked
public static boolean isLocked( String directory ) throws IOException

Returns true iff the index in the named directory is currently locked.


lastModified
public static long lastModified( Directory directory ) throws IOException

Returns the time the index in the named directory was last modified.

Synchronization of IndexReader and IndexWriter instances is no longer done via time stamps of the segments file since the time resolution depends on the hardware platform. Instead, a version number is maintained within the segments file, which is incremented everytime when the index is changed.




lastModified
public static long lastModified( File directory ) throws IOException

Returns the time the index in the named directory was last modified.

Synchronization of IndexReader and IndexWriter instances is no longer done via time stamps of the segments file since the time resolution depends on the hardware platform. Instead, a version number is maintained within the segments file, which is incremented everytime when the index is changed.




lastModified
public static long lastModified( String directory ) throws IOException

Returns the time the index in the named directory was last modified.

Synchronization of IndexReader and IndexWriter instances is no longer done via time stamps of the segments file since the time resolution depends on the hardware platform. Instead, a version number is maintained within the segments file, which is incremented everytime when the index is changed.




open
public static IndexReader open( Directory directory ) throws IOException

Returns an IndexReader reading the index in the given Directory.


open
public static IndexReader open( File path ) throws IOException

Returns an IndexReader reading the index in an FSDirectory in the named path.


open
public static IndexReader open( String path ) throws IOException

Returns an IndexReader reading the index in an FSDirectory in the named path.


unlock
public static void unlock( Directory directory ) throws IOException

Forcibly unlocks the index in the named directory.

Caution: this should only be used by failure recovery code, when it is known that no other process nor thread is in fact currently accessing this index.



Instance Methods
 
close
public final synchronized void close( ) throws IOException

Closes files associated with this index. Also saves any new deletions to disk. No other methods should be called after this has been called.


commit
protected final synchronized void commit( ) throws IOException

Commit changes resulting from delete, undeleteAll, or setNorm operations


delete
public final synchronized void delete( int docNum ) throws IOException

Deletes the document numbered docNum. Once a document is deleted it will not appear in TermDocs or TermPostitions enumerations. Attempts to read its field with the document method will result in an error. The presence of this document may still be reflected in the docFreq statistic, though this will be corrected eventually as the index is further modified.


delete
public final int delete( Term term ) throws IOException

Deletes all documents containing term. This is useful if one uses a document field to hold a unique ID string for the document. Then to delete such a document, one merely constructs a term with the appropriate field and the unique ID string as its text and passes it to this method. Returns the number of documents deleted.


directory
public Directory directory( )

Returns the directory this index resides in.


docFreq
public abstract int docFreq( Term t ) throws IOException

Returns the number of documents containing the term t.


doClose
protected abstract void doClose( ) throws IOException

Implements close.


doCommit
protected abstract void doCommit( ) throws IOException

Implements commit.


document
public abstract Document document( int n ) throws IOException

Returns the stored fields of the nth Document in this index.


doDelete
protected abstract void doDelete( int docNum ) throws IOException

Implements deletion of the document numbered docNum. Applications should call delete(int) or delete(Term).


doSetNorm
protected abstract void doSetNorm( int doc, String field, byte value ) throws IOException

Implements setNorm in subclass.


doUndeleteAll
protected abstract void doUndeleteAll( ) throws IOException

Implements actual undeleteAll() in subclass.


finalize
protected final void finalize( ) throws IOException

Release the write lock, if needed.


getFieldNames
public abstract Collection getFieldNames( ) throws IOException

Returns a list of all unique field names that exist in the index pointed to by this IndexReader.


getFieldNames
public abstract Collection getFieldNames( boolean indexed ) throws IOException

Returns a list of all unique field names that exist in the index pointed to by this IndexReader. The boolean argument specifies whether the fields returned are indexed or not.


getIndexedFieldNames
public abstract Collection getIndexedFieldNames( boolean storedTermVector )

No description available for this method.


getTermFreqVector
public abstract TermFreqVector getTermFreqVector( int docNumber, String field ) throws IOException

Return a term frequency vector for the specified document and field. The vector returned contains terms and frequencies for those terms in the specified field of this document, if the field had storeTermVector flag set. If the flag was not set, the method returns null.


getTermFreqVectors
public abstract TermFreqVector[] getTermFreqVectors( int docNumber ) throws IOException

Return an array of term frequency vectors for the specified document. The array contains a vector for each vectorized field in the document. Each vector contains terms and frequencies for all terms in a given vectorized field. If no such fields existed, the method returns null.


hasDeletions
public abstract boolean hasDeletions( )

Returns true if any documents have been deleted


isDeleted
public abstract boolean isDeleted( int n )

Returns true if document n has been deleted


maxDoc
public abstract int maxDoc( )

Returns one greater than the largest possible document number. This may be used to, e.g., determine how big to allocate an array which will have an element for every document number in an index.


norms
public abstract byte[] norms( String field ) throws IOException

Returns the byte-encoded normalization factor for the named field of every document. This is used by the search code to score documents.


norms
public abstract void norms( String field, byte[] bytes, int offset ) throws IOException

Reads the byte-encoded normalization factor for the named field of every document. This is used by the search code to score documents.


numDocs
public abstract int numDocs( )

Returns the number of documents in this index.


setNorm
public final synchronized void setNorm( int doc, String field, byte value ) throws IOException

Expert: Resets the normalization factor for the named field of the named document. The norm represents the product of the field's boost and its normalization. Thus, to preserve the length normalization values when resetting this, one should base the new value upon the old.


setNorm
public void setNorm( int doc, String field, float value ) throws IOException

Expert: Resets the normalization factor for the named field of the named document.


termDocs
public abstract TermDocs termDocs( ) throws IOException

Returns an unpositioned TermDocs enumerator.


termDocs
public TermDocs termDocs( Term term ) throws IOException

Returns an enumeration of all the documents which contain term. For each document, the document number, the frequency of the term in that document is also provided, for use in search scoring. Thus, this method implements the mapping:

    Term    =>    <docNum, freq>*

The enumeration is ordered by document number. Each document number is greater than all that precede it in the enumeration.


termPositions
public abstract TermPositions termPositions( ) throws IOException

Returns an unpositioned TermPositions enumerator.


termPositions
public TermPositions termPositions( Term term ) throws IOException

Returns an enumeration of all the documents which contain term. For each document, in addition to the document number and frequency of the term in that document, a list of all of the ordinal positions of the term in the document is available. Thus, this method implements the mapping:

    Term    =>    <docNum, freq, <pos1, pos2, ... posfreq-1> >*

This positional information faciliates phrase and proximity searching.

The enumeration is ordered by document number. Each document number is greater than all that precede it in the enumeration.


terms
public abstract TermEnum terms( ) throws IOException

Returns an enumeration of all the terms in the index. The enumeration is ordered by Term.compareTo(). Each term is greater than all that precede it in the enumeration.


terms
public abstract TermEnum terms( Term t ) throws IOException

Returns an enumeration of all terms after a given term. The enumeration is ordered by Term.compareTo(). Each term is greater than all that precede it in the enumeration.


undeleteAll
public final synchronized void undeleteAll( ) throws IOException

Undeletes all documents currently marked as deleted in this index.



Known Subclasses
 
FilterIndexReader, MultiReader



 
 
  dydoc
  3/9/05