Class IndexFileNames


  • public final class IndexFileNames
    extends 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 Detail

      • COMPOUND_FILE_EXTENSION

        public static final String COMPOUND_FILE_EXTENSION
        Extension of compound file
        See Also:
        Constant Field Values
      • COMPOUND_FILE_ENTRIES_EXTENSION

        public static final String COMPOUND_FILE_ENTRIES_EXTENSION
        Extension of compound file entries
        See Also:
        Constant Field Values
      • INDEX_EXTENSIONS

        public static final String[] INDEX_EXTENSIONS
        This array contains all filename extensions used by Lucene's index files, with one exception, namely the extension made up from .s + a number. Also note that Lucene's segments_N files do not have any filename extension.
      • CODEC_FILE_PATTERN

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

      • fileNameFromGeneration

        public static String fileNameFromGeneration​(String base,
                                                    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 String segmentFileName​(String segmentName,
                                             String segmentSuffix,
                                             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​(String filename,
                                               String ext)
        Returns true if the given filename ends with the given extension. One should provide a pure extension, without '.'.
      • parseSegmentName

        public static String parseSegmentName​(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 String stripExtension​(String filename)
        Removes the extension (anything after the first '.'), otherwise returns the original filename.