Interface FieldCache


  • public interface FieldCache
    Expert: Maintains caches of term values.

    Created: May 19, 2004 11:13:14 AM

    Since:
    lucene 1.4
    See Also:
    FieldCacheSanityChecker
    • Field Detail

      • DEFAULT

        static final FieldCache DEFAULT
        Expert: The cache used internally by sorting and range query classes.
      • DEFAULT_BYTE_PARSER

        @Deprecated
        static final FieldCache.ByteParser DEFAULT_BYTE_PARSER
        Deprecated.
        The default parser for byte values, which are encoded by Byte.toString(byte)
      • DEFAULT_SHORT_PARSER

        @Deprecated
        static final FieldCache.ShortParser DEFAULT_SHORT_PARSER
        Deprecated.
        The default parser for short values, which are encoded by Short.toString(short)
      • DEFAULT_INT_PARSER

        @Deprecated
        static final FieldCache.IntParser DEFAULT_INT_PARSER
        Deprecated.
        The default parser for int values, which are encoded by Integer.toString(int)
      • DEFAULT_FLOAT_PARSER

        @Deprecated
        static final FieldCache.FloatParser DEFAULT_FLOAT_PARSER
        Deprecated.
        The default parser for float values, which are encoded by Float.toString(float)
      • DEFAULT_LONG_PARSER

        @Deprecated
        static final FieldCache.LongParser DEFAULT_LONG_PARSER
        Deprecated.
        The default parser for long values, which are encoded by Long.toString(long)
      • DEFAULT_DOUBLE_PARSER

        @Deprecated
        static final FieldCache.DoubleParser DEFAULT_DOUBLE_PARSER
        Deprecated.
        The default parser for double values, which are encoded by Double.toString(double)
    • Method Detail

      • getDocsWithField

        Bits getDocsWithField​(AtomicReader reader,
                              java.lang.String field)
                       throws java.io.IOException
        Checks the internal cache for an appropriate entry, and if none is found, reads the terms in field and returns a bit set at the size of reader.maxDoc(), with turned on bits for each docid that does have a value for this field.
        Throws:
        java.io.IOException
      • getBytes

        @Deprecated
        FieldCache.Bytes getBytes​(AtomicReader reader,
                                  java.lang.String field,
                                  boolean setDocsWithField)
                           throws java.io.IOException
        Deprecated.
        (4.4) Index as a numeric field using IntField and then use getInts(AtomicReader, String, boolean) instead.
        Checks the internal cache for an appropriate entry, and if none is found, reads the terms in field as a single byte and returns an array of size reader.maxDoc() of the value each document has in the given field.
        Parameters:
        reader - Used to get field values.
        field - Which field contains the single byte values.
        setDocsWithField - If true then getDocsWithField(org.apache.lucene.index.AtomicReader, java.lang.String) will also be computed and stored in the FieldCache.
        Returns:
        The values in the given field for each document.
        Throws:
        java.io.IOException - If any error occurs.
      • getBytes

        @Deprecated
        FieldCache.Bytes getBytes​(AtomicReader reader,
                                  java.lang.String field,
                                  FieldCache.ByteParser parser,
                                  boolean setDocsWithField)
                           throws java.io.IOException
        Deprecated.
        (4.4) Index as a numeric field using IntField and then use getInts(AtomicReader, String, boolean) instead.
        Checks the internal cache for an appropriate entry, and if none is found, reads the terms in field as bytes and returns an array of size reader.maxDoc() of the value each document has in the given field.
        Parameters:
        reader - Used to get field values.
        field - Which field contains the bytes.
        parser - Computes byte for string values.
        setDocsWithField - If true then getDocsWithField(org.apache.lucene.index.AtomicReader, java.lang.String) will also be computed and stored in the FieldCache.
        Returns:
        The values in the given field for each document.
        Throws:
        java.io.IOException - If any error occurs.
      • getShorts

        @Deprecated
        FieldCache.Shorts getShorts​(AtomicReader reader,
                                    java.lang.String field,
                                    boolean setDocsWithField)
                             throws java.io.IOException
        Deprecated.
        (4.4) Index as a numeric field using IntField and then use getInts(AtomicReader, String, boolean) instead.
        Checks the internal cache for an appropriate entry, and if none is found, reads the terms in field as shorts and returns an array of size reader.maxDoc() of the value each document has in the given field.
        Parameters:
        reader - Used to get field values.
        field - Which field contains the shorts.
        setDocsWithField - If true then getDocsWithField(org.apache.lucene.index.AtomicReader, java.lang.String) will also be computed and stored in the FieldCache.
        Returns:
        The values in the given field for each document.
        Throws:
        java.io.IOException - If any error occurs.
      • getShorts

        @Deprecated
        FieldCache.Shorts getShorts​(AtomicReader reader,
                                    java.lang.String field,
                                    FieldCache.ShortParser parser,
                                    boolean setDocsWithField)
                             throws java.io.IOException
        Deprecated.
        (4.4) Index as a numeric field using IntField and then use getInts(AtomicReader, String, boolean) instead.
        Checks the internal cache for an appropriate entry, and if none is found, reads the terms in field as shorts and returns an array of size reader.maxDoc() of the value each document has in the given field.
        Parameters:
        reader - Used to get field values.
        field - Which field contains the shorts.
        parser - Computes short for string values.
        setDocsWithField - If true then getDocsWithField(org.apache.lucene.index.AtomicReader, java.lang.String) will also be computed and stored in the FieldCache.
        Returns:
        The values in the given field for each document.
        Throws:
        java.io.IOException - If any error occurs.
      • getTerms

        BinaryDocValues getTerms​(AtomicReader reader,
                                 java.lang.String field,
                                 boolean setDocsWithField)
                          throws java.io.IOException
        Checks the internal cache for an appropriate entry, and if none is found, reads the term values in field and returns a BinaryDocValues instance, providing a method to retrieve the term (as a BytesRef) per document.
        Parameters:
        reader - Used to get field values.
        field - Which field contains the strings.
        setDocsWithField - If true then getDocsWithField(org.apache.lucene.index.AtomicReader, java.lang.String) will also be computed and stored in the FieldCache.
        Returns:
        The values in the given field for each document.
        Throws:
        java.io.IOException - If any error occurs.
      • getTerms

        BinaryDocValues getTerms​(AtomicReader reader,
                                 java.lang.String field,
                                 boolean setDocsWithField,
                                 float acceptableOverheadRatio)
                          throws java.io.IOException
        Expert: just like getTerms(AtomicReader,String,boolean), but you can specify whether more RAM should be consumed in exchange for faster lookups (default is "true"). Note that the first call for a given reader and field "wins", subsequent calls will share the same cache entry.
        Throws:
        java.io.IOException
      • getTermsIndex

        SortedDocValues getTermsIndex​(AtomicReader reader,
                                      java.lang.String field)
                               throws java.io.IOException
        Checks the internal cache for an appropriate entry, and if none is found, reads the term values in field and returns a SortedDocValues instance, providing methods to retrieve sort ordinals and terms (as a ByteRef) per document.
        Parameters:
        reader - Used to get field values.
        field - Which field contains the strings.
        Returns:
        The values in the given field for each document.
        Throws:
        java.io.IOException - If any error occurs.
      • getTermsIndex

        SortedDocValues getTermsIndex​(AtomicReader reader,
                                      java.lang.String field,
                                      float acceptableOverheadRatio)
                               throws java.io.IOException
        Expert: just like getTermsIndex(AtomicReader,String), but you can specify whether more RAM should be consumed in exchange for faster lookups (default is "true"). Note that the first call for a given reader and field "wins", subsequent calls will share the same cache entry.
        Throws:
        java.io.IOException
      • getDocTermOrds

        SortedSetDocValues getDocTermOrds​(AtomicReader reader,
                                          java.lang.String field)
                                   throws java.io.IOException
        Checks the internal cache for an appropriate entry, and if none is found, reads the term values in field and returns a DocTermOrds instance, providing a method to retrieve the terms (as ords) per document.
        Parameters:
        reader - Used to build a DocTermOrds instance
        field - Which field contains the strings.
        Returns:
        a DocTermOrds instance
        Throws:
        java.io.IOException - If any error occurs.
      • getCacheEntries

        FieldCache.CacheEntry[] getCacheEntries()
        EXPERT: Generates an array of CacheEntry objects representing all items currently in the FieldCache.

        NOTE: These CacheEntry objects maintain a strong reference to the Cached Values. Maintaining references to a CacheEntry the AtomicIndexReader associated with it has garbage collected will prevent the Value itself from being garbage collected when the Cache drops the WeakReference.

      • purgeAllCaches

        void purgeAllCaches()

        EXPERT: Instructs the FieldCache to forcibly expunge all entries from the underlying caches. This is intended only to be used for test methods as a way to ensure a known base state of the Cache (with out needing to rely on GC to free WeakReferences). It should not be relied on for "Cache maintenance" in general application code.

      • purgeByCacheKey

        void purgeByCacheKey​(java.lang.Object coreCacheKey)
        Expert: drops all cache entries associated with this reader IndexReader.getCoreCacheKey(). NOTE: this cache key must precisely match the reader that the cache entry is keyed on. If you pass a top-level reader, it usually will have no effect as Lucene now caches at the segment reader level.
      • setInfoStream

        void setInfoStream​(java.io.PrintStream stream)
        If non-null, FieldCacheImpl will warn whenever entries are created that are not sane according to FieldCacheSanityChecker.