Class PostingsFormat

    • Field Detail

      • EMPTY

        public static final PostingsFormat[] EMPTY
        Zero-length PostingsFormat array.
    • Constructor Detail

      • PostingsFormat

        protected PostingsFormat​(String name)
        Creates a new postings format.

        The provided name will be written into the index segment in some configurations (such as when using PerFieldPostingsFormat): in such configurations, for the segment to be read this class should be registered with Java's SPI mechanism (registered in META-INF/ of your jar file, etc).

        Parameters:
        name - must be all ascii alphanumeric, and less than 128 characters in length.
    • Method Detail

      • fieldsProducer

        public abstract FieldsProducer fieldsProducer​(SegmentReadState state)
                                               throws IOException
        Reads a segment. NOTE: by the time this call returns, it must hold open any files it will need to use; else, those files may be deleted. Additionally, required files may be deleted during the execution of this call before there is a chance to open them. Under these circumstances an IOException should be thrown by the implementation. IOExceptions are expected and will automatically cause a retry of the segment opening logic with the newly revised segments.
        Throws:
        IOException
      • availablePostingsFormats

        public static Set<String> availablePostingsFormats()
        returns a list of all available format names
      • reloadPostingsFormats

        public static void reloadPostingsFormats​(ClassLoader classloader)
        Reloads the postings format list from the given ClassLoader. Changes to the postings formats are visible after the method ends, all iterators (availablePostingsFormats(),...) stay consistent.

        NOTE: Only new postings formats are added, existing ones are never removed or replaced.

        This method is expensive and should only be called for discovery of new postings formats on the given classpath/classloader!