Package org.apache.lucene.index

# Class IndexFileNames

java.lang.Object
org.apache.lucene.index.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.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Pattern`
  `CODEC_FILE_PATTERN`
  All files created by codecs much match this pattern (checked in SegmentInfo).
  `static final String`
  `PENDING_SEGMENTS`
  Name of pending index segment file
  `static final String`
  `SEGMENTS`
  Name of the index segment file

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `fileNameFromGeneration(String base, String ext, long gen)`
  Computes the full file name from base, extension and generation.
  `static String`
  `getExtension(String filename)`
  Return the extension (anything after the first '.'), or null if there is no '.' in the file name.
  `static boolean`
  `matchesExtension(String filename, String ext)`
  Returns true if the given filename ends with the given extension.
  `static long`
  `parseGeneration(String filename)`
  Returns the generation from this file name, or 0 if there is no generation.
  `static String`
  `parseSegmentName(String filename)`
  Parses the segment name out of the given file name.
  `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.
  `static String`
  `stripExtension(String filename)`
  Removes the extension (anything after the first '.'), otherwise returns the original filename.
  `static String`
  `stripSegmentName(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 Details

  - ### SEGMENTS

    public static final String SEGMENTS
    Name of the index segment file
    See Also:
      - Constant Field Values

  - ### PENDING_SEGMENTS

    public static final String PENDING_SEGMENTS
    Name of pending index segment file
    See Also:
      - Constant Field Values

  - ### CODEC_FILE_PATTERN

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

- ## Method Details

  - ### 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 '.'.

  - ### stripSegmentName

    public static String stripSegmentName(String filename)
    Strips the segment name out of the given file name. If you used `segmentFileName(java.lang.String, java.lang.String, java.lang.String)` or `fileNameFromGeneration(java.lang.String, java.lang.String, long)` to create your files, then this method simply removes whatever comes before the first '.', or the second '_' (excluding both).
    Returns:
      the filename with the segment name removed, or the given filename if it does not contain a '.' and '_'.

  - ### parseGeneration

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

  - ### 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.

  - ### getExtension

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