Class ReusableDocumentStoredFieldVisitor


  • public final class ReusableDocumentStoredFieldVisitor
    extends org.apache.lucene.index.StoredFieldVisitor
    Inspired by Lucene's DocumentStoredFieldVisitor, with the difference that we want to reuse the same FieldVisitor to load multiple Document instances. Also the accepted fields are kept in a linked-list like structure, to optimize for small amounts of accepted fields. A ReusableDocumentStoredFieldVisitor is NOT threadsafe: in case you need one for multiple threads make a clone for each thread.
    Author:
    Sanne Grinovero
    See Also:
    DocumentStoredFieldVisitor
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.apache.lucene.index.StoredFieldVisitor

        org.apache.lucene.index.StoredFieldVisitor.Status
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void binaryField​(org.apache.lucene.index.FieldInfo fieldInfo, byte[] value)  
      void doubleField​(org.apache.lucene.index.FieldInfo fieldInfo, double value)  
      void floatField​(org.apache.lucene.index.FieldInfo fieldInfo, float value)  
      org.apache.lucene.document.Document getDocumentAndReset()
      Retrieve the visited document, and resets the instance to be reused by creating a new Document internally.
      void intField​(org.apache.lucene.index.FieldInfo fieldInfo, int value)  
      void longField​(org.apache.lucene.index.FieldInfo fieldInfo, long value)  
      org.apache.lucene.index.StoredFieldVisitor.Status needsField​(org.apache.lucene.index.FieldInfo fieldInfo)  
      void stringField​(org.apache.lucene.index.FieldInfo fieldInfo, byte[] value)  
    • Constructor Detail

      • ReusableDocumentStoredFieldVisitor

        public ReusableDocumentStoredFieldVisitor()
        Create a visitor that collects all fields.
      • ReusableDocumentStoredFieldVisitor

        public ReusableDocumentStoredFieldVisitor​(Set<String> fieldsToLoad)
        Create a visitor that collects only some specified fields.
    • Method Detail

      • binaryField

        public void binaryField​(org.apache.lucene.index.FieldInfo fieldInfo,
                                byte[] value)
        Overrides:
        binaryField in class org.apache.lucene.index.StoredFieldVisitor
      • stringField

        public void stringField​(org.apache.lucene.index.FieldInfo fieldInfo,
                                byte[] value)
        Overrides:
        stringField in class org.apache.lucene.index.StoredFieldVisitor
      • intField

        public void intField​(org.apache.lucene.index.FieldInfo fieldInfo,
                             int value)
        Overrides:
        intField in class org.apache.lucene.index.StoredFieldVisitor
      • longField

        public void longField​(org.apache.lucene.index.FieldInfo fieldInfo,
                              long value)
        Overrides:
        longField in class org.apache.lucene.index.StoredFieldVisitor
      • floatField

        public void floatField​(org.apache.lucene.index.FieldInfo fieldInfo,
                               float value)
        Overrides:
        floatField in class org.apache.lucene.index.StoredFieldVisitor
      • doubleField

        public void doubleField​(org.apache.lucene.index.FieldInfo fieldInfo,
                                double value)
        Overrides:
        doubleField in class org.apache.lucene.index.StoredFieldVisitor
      • needsField

        public org.apache.lucene.index.StoredFieldVisitor.Status needsField​(org.apache.lucene.index.FieldInfo fieldInfo)
        Specified by:
        needsField in class org.apache.lucene.index.StoredFieldVisitor
      • getDocumentAndReset

        public org.apache.lucene.document.Document getDocumentAndReset()
        Retrieve the visited document, and resets the instance to be reused by creating a new Document internally.
        Returns:
        Document populated with stored fields.