Documentation of 'org.apache.lucene.index.ParallelReader' Java class
ParallelReader
org.apache.lucene.index

Class ParallelReader



  • public class ParallelReader
    extends IndexReader
    An IndexReader which reads multiple, parallel indexes. Each index added must have the same number of documents, but typically each contains different fields. Each document contains the union of the fields of all documents with the same document number. When searching, matches for a query term are from the first index added that has the field.

    This is useful, e.g., with collections that have large fields which change rarely and small fields that change more frequently. The smaller fields may be re-indexed in a new index and both indexes may be searched together.

    Warning: It is up to you to make sure all indexes are created and modified the same way. For example, if you add documents to one index, you need to add the same documents in the same order to the other indexes. Failure to do so will result in undefined behavior.

    • Constructor Detail

      • ParallelReader

        public ParallelReader()
                       throws java.io.IOException
        Construct a ParallelReader.

        Note that all subreaders are closed if this ParallelReader is closed.

        Throws:
        java.io.IOException
      • ParallelReader

        public ParallelReader(boolean closeSubReaders)
                       throws java.io.IOException
        Construct a ParallelReader.
        Parameters:
        closeSubReaders - indicates whether the subreaders should be closed when this ParallelReader is closed
        Throws:
        java.io.IOException
    • Method Detail

      • add

        public void add(IndexReader reader)
                 throws java.io.IOException
        Add an IndexReader.
        Throws:
        java.io.IOException - if there is a low-level IO error
      • add

        public void add(IndexReader reader,
                        boolean ignoreStoredFields)
                 throws java.io.IOException
        Add an IndexReader whose stored fields will not be returned. This can accellerate search when stored fields are only needed from a subset of the IndexReaders.
        Throws:
        java.lang.IllegalArgumentException - if not all indexes contain the same number of documents
        java.lang.IllegalArgumentException - if not all indexes have the same value of IndexReader.maxDoc()
        java.io.IOException - if there is a low-level IO error
      • reopen

        public IndexReader reopen()
                           throws CorruptIndexException,
                                  java.io.IOException
        Tries to reopen the subreaders.
        If one or more subreaders could be re-opened (i. e. subReader.reopen() returned a new instance != subReader), then a new ParallelReader instance is returned, otherwise this instance is returned.

        A re-opened instance might share one or more subreaders with the old instance. Index modification operations result in undefined behavior when performed before the old instance is closed. (see IndexReader.reopen()).

        If subreaders are shared, then the reference count of those readers is increased to ensure that the subreaders remain open until the last referring reader is closed.

        Overrides:
        reopen in class IndexReader
        Throws:
        CorruptIndexException - if the index is corrupt
        java.io.IOException - if there is a low-level IO error
      • numDocs

        public int numDocs()
        Description copied from class: IndexReader
        Returns the number of documents in this index.
        Specified by:
        numDocs in class IndexReader
      • maxDoc

        public int maxDoc()
        Description copied from class: IndexReader
        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.
        Specified by:
        maxDoc in class IndexReader
      • hasDeletions

        public boolean hasDeletions()
        Description copied from class: IndexReader
        Returns true if any documents have been deleted
        Specified by:
        hasDeletions in class IndexReader
      • isDeleted

        public boolean isDeleted(int n)
        Description copied from class: IndexReader
        Returns true if document n has been deleted
        Specified by:
        isDeleted in class IndexReader
      • document

        public Document document(int n,
                                 FieldSelector fieldSelector)
                          throws CorruptIndexException,
                                 java.io.IOException
        Description copied from class: IndexReader
        Get the Document at the nth position. The FieldSelector may be used to determine what Fields to load and how they should be loaded. NOTE: If this Reader (more specifically, the underlying FieldsReader) is closed before the lazy Field is loaded an exception may be thrown. If you want the value of a lazy Field to be available after closing you must explicitly load it or fetch the Document again with a new loader.
        Specified by:
        document in class IndexReader
        Parameters:
        n - Get the document at the nth position
        fieldSelector - The FieldSelector to use to determine what Fields should be loaded on the Document. May be null, in which case all Fields will be loaded.
        Returns:
        The stored fields of the Document at the nth position
        Throws:
        CorruptIndexException - if the index is corrupt
        java.io.IOException - if there is a low-level IO error
        See Also:
        Fieldable, FieldSelector, SetBasedFieldSelector, LoadFirstFieldSelector
      • getTermFreqVectors

        public TermFreqVector[] getTermFreqVectors(int n)
                                            throws java.io.IOException
        Description copied from class: IndexReader
        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. The term vectors that are returned my either be of type TermFreqVector or of type TermPositionsVector if positions or offsets have been stored.
        Specified by:
        getTermFreqVectors in class IndexReader
        Parameters:
        n - document for which term frequency vectors are returned
        Returns:
        array of term frequency vectors. May be null if no term vectors have been stored for the specified document.
        Throws:
        java.io.IOException - if index cannot be accessed
        See Also:
        Field.TermVector
      • getTermFreqVector

        public TermFreqVector getTermFreqVector(int n,
                                                java.lang.String field)
                                         throws java.io.IOException
        Description copied from class: IndexReader
        Return a term frequency vector for the specified document and field. The returned vector contains terms and frequencies for the terms in the specified field of this document, if the field had the storeTermVector flag set. If termvectors had been stored with positions or offsets, a TermPositionsVector is returned.
        Specified by:
        getTermFreqVector in class IndexReader
        Parameters:
        n - document for which the term frequency vector is returned
        field - field for which the term frequency vector is returned.
        Returns:
        term frequency vector May be null if field does not exist in the specified document or term vector was not stored.
        Throws:
        java.io.IOException - if index cannot be accessed
        See Also:
        Field.TermVector
      • getTermFreqVector

        public void getTermFreqVector(int docNumber,
                                      java.lang.String field,
                                      TermVectorMapper mapper)
                               throws java.io.IOException
        Description copied from class: IndexReader
        Load the Term Vector into a user-defined data structure instead of relying on the parallel arrays of the TermFreqVector.
        Specified by:
        getTermFreqVector in class IndexReader
        Parameters:
        docNumber - The number of the document to load the vector for
        field - The name of the field to load
        mapper - The TermVectorMapper to process the vector. Must not be null
        Throws:
        java.io.IOException - if term vectors cannot be accessed or if they do not exist on the field and doc. specified.
      • getTermFreqVector

        public void getTermFreqVector(int docNumber,
                                      TermVectorMapper mapper)
                               throws java.io.IOException
        Description copied from class: IndexReader
        Map all the term vectors for all fields in a Document
        Specified by:
        getTermFreqVector in class IndexReader
        Parameters:
        docNumber - The number of the document to load the vector for
        mapper - The TermVectorMapper to process the vector. Must not be null
        Throws:
        java.io.IOException - if term vectors cannot be accessed or if they do not exist on the field and doc. specified.
      • hasNorms

        public boolean hasNorms(java.lang.String field)
                         throws java.io.IOException
        Description copied from class: IndexReader
        Returns true if there are norms stored for this field.
        Overrides:
        hasNorms in class IndexReader
        Throws:
        java.io.IOException
      • norms

        public byte[] norms(java.lang.String field)
                     throws java.io.IOException
        Description copied from class: IndexReader
        Returns the byte-encoded normalization factor for the named field of every document. This is used by the search code to score documents.
        Specified by:
        norms in class IndexReader
        Throws:
        java.io.IOException
        See Also:
        AbstractField.setBoost(float)
      • norms

        public void norms(java.lang.String field,
                          byte[] result,
                          int offset)
                   throws java.io.IOException
        Description copied from class: IndexReader
        Reads the byte-encoded normalization factor for the named field of every document. This is used by the search code to score documents.
        Specified by:
        norms in class IndexReader
        Throws:
        java.io.IOException
        See Also:
        AbstractField.setBoost(float)
      • terms

        public TermEnum terms()
                       throws java.io.IOException
        Description copied from class: IndexReader
        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. Note that after calling terms(), TermEnum.next() must be called on the resulting enumeration before calling other methods such as TermEnum.term().
        Specified by:
        terms in class IndexReader
        Throws:
        java.io.IOException - if there is a low-level IO error
      • terms

        public TermEnum terms(Term term)
                       throws java.io.IOException
        Description copied from class: IndexReader
        Returns an enumeration of all terms starting at a given term. If the given term does not exist, the enumeration is positioned at the first term greater than the supplied therm. The enumeration is ordered by Term.compareTo(). Each term is greater than all that precede it in the enumeration.
        Specified by:
        terms in class IndexReader
        Throws:
        java.io.IOException - if there is a low-level IO error
      • docFreq

        public int docFreq(Term term)
                    throws java.io.IOException
        Description copied from class: IndexReader
        Returns the number of documents containing the term t.
        Specified by:
        docFreq in class IndexReader
        Throws:
        java.io.IOException - if there is a low-level IO error
      • termDocs

        public TermDocs termDocs(Term term)
                          throws java.io.IOException
        Description copied from class: IndexReader
        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.

        Overrides:
        termDocs in class IndexReader
        Throws:
        java.io.IOException - if there is a low-level IO error
      • termDocs

        public TermDocs termDocs()
                          throws java.io.IOException
        Description copied from class: IndexReader
        Returns an unpositioned TermDocs enumerator.
        Specified by:
        termDocs in class IndexReader
        Throws:
        java.io.IOException - if there is a low-level IO error
      • termPositions

        public TermPositions termPositions(Term term)
                                    throws java.io.IOException
        Description copied from class: IndexReader
        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 facilitates phrase and proximity searching.

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

        Overrides:
        termPositions in class IndexReader
        Throws:
        java.io.IOException - if there is a low-level IO error
      • isOptimized

        public boolean isOptimized()
        Checks recursively if all subindexes are optimized
        Overrides:
        isOptimized in class IndexReader
        Returns:
        true if the index is optimized; false otherwise
      • getVersion

        public long getVersion()
        Not implemented.
        Overrides:
        getVersion in class IndexReader
        Throws:
        java.lang.UnsupportedOperationException
      • getFieldNames

        public java.util.Collection getFieldNames(IndexReader.FieldOption fieldNames)
        Description copied from class: IndexReader
        Get a list of unique field names that exist in this index and have the specified field option information.
        Specified by:
        getFieldNames in class IndexReader
        Parameters:
        fieldNames - specifies which field option should be available for the returned fields
        Returns:
        Collection of Strings indicating the names of the fields.
        See Also:
        IndexReader.FieldOption

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.