Class IndexFileNames


  • public final class IndexFileNames
    extends java.lang.Object
    This class contains useful constants representing filenames and extensions used by lucene, as well as convenience methods for querying whether a file name matches an extension (matchesExtension), as well as generating file names from a segment name, generation and extension ( fileNameFromGeneration, segmentFileName).

    NOTE: extensions used by codecs are not listed here. You must interact with the Codec directly.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.util.regex.Pattern CODEC_FILE_PATTERN
      All files created by codecs much match this pattern (checked in SegmentInfo).
      static java.lang.String PENDING_SEGMENTS
      Name of pending index segment file
      static java.lang.String SEGMENTS
      Name of the index segment file
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private IndexFileNames()
      No instance
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String fileNameFromGeneration​(java.lang.String base, java.lang.String ext, long gen)
      Computes the full file name from base, extension and generation.
      static java.lang.String getExtension​(java.lang.String filename)
      Return the extension (anything after the first '.'), or null if there is no '.' in the file name.
      private static int indexOfSegmentName​(java.lang.String filename)
      locates the boundary of the segment name, or -1
      static boolean matchesExtension​(java.lang.String filename, java.lang.String ext)
      Returns true if the given filename ends with the given extension.
      static long parseGeneration​(java.lang.String filename)
      Returns the generation from this file name, or 0 if there is no generation.
      static java.lang.String parseSegmentName​(java.lang.String filename)
      Parses the segment name out of the given file name.
      static java.lang.String segmentFileName​(java.lang.String segmentName, java.lang.String segmentSuffix, java.lang.String ext)
      Returns a file name that includes the given segment name, your own custom name and extension.
      static java.lang.String stripExtension​(java.lang.String filename)
      Removes the extension (anything after the first '.'), otherwise returns the original filename.
      static java.lang.String stripSegmentName​(java.lang.String filename)
      Strips the segment name out of the given file name.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • SEGMENTS

        public static final java.lang.String SEGMENTS
        Name of the index segment file
        See Also:
        Constant Field Values
      • PENDING_SEGMENTS

        public static final java.lang.String PENDING_SEGMENTS
        Name of pending index segment file
        See Also:
        Constant Field Values
      • CODEC_FILE_PATTERN

        public static final java.util.regex.Pattern CODEC_FILE_PATTERN
        All files created by codecs much match this pattern (checked in SegmentInfo).
    • Constructor Detail

      • IndexFileNames

        private IndexFileNames()
        No instance
    • Method Detail

      • fileNameFromGeneration

        public static java.lang.String fileNameFromGeneration​(java.lang.String base,
                                                              java.lang.String ext,
                                                              long gen)
        Computes the full file name from base, extension and generation. If the generation is -1, the file name is null. If it's 0, the file name is <base>.<ext>. If it's > 0, the file name is <base>_<gen>.<ext>.
        NOTE: .<ext> is added to the name only if ext is not an empty string.
        Parameters:
        base - main part of the file name
        ext - extension of the filename
        gen - generation
      • segmentFileName

        public static java.lang.String segmentFileName​(java.lang.String segmentName,
                                                       java.lang.String segmentSuffix,
                                                       java.lang.String ext)
        Returns a file name that includes the given segment name, your own custom name and extension. The format of the filename is: <segmentName>(_<name>)(.<ext>).

        NOTE: .<ext> is added to the result file name only if ext is not empty.

        NOTE: _<segmentSuffix> is added to the result file name only if it's not the empty string

        NOTE: all custom files should be named using this method, or otherwise some structures may fail to handle them properly (such as if they are added to compound files).

      • matchesExtension

        public static boolean matchesExtension​(java.lang.String filename,
                                               java.lang.String ext)
        Returns true if the given filename ends with the given extension. One should provide a pure extension, without '.'.
      • indexOfSegmentName

        private static int indexOfSegmentName​(java.lang.String filename)
        locates the boundary of the segment name, or -1
      • parseGeneration

        public static long parseGeneration​(java.lang.String filename)
        Returns the generation from this file name, or 0 if there is no generation.
      • parseSegmentName

        public static java.lang.String parseSegmentName​(java.lang.String filename)
        Parses the segment name out of the given file name.
        Returns:
        the segment name only, or filename if it does not contain a '.' and '_'.
      • stripExtension

        public static java.lang.String stripExtension​(java.lang.String filename)
        Removes the extension (anything after the first '.'), otherwise returns the original filename.
      • getExtension

        public static java.lang.String getExtension​(java.lang.String filename)
        Return the extension (anything after the first '.'), or null if there is no '.' in the file name.