org.apache.lucene.index

## Class SegmentInfo

- java.lang.Object
- - org.apache.lucene.index.SegmentInfo

-     public final class SegmentInfo
      extends Object

  Information about a segment such as its name, directory, and files related to the segment.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `Directory` | `dir` Where this segment resides.
    `String` | `name` Unique segment name in the directory.
    `static int` | `NO` Used by some member fields to mean not present (e.g., norms, deletions).
    `static int` | `YES` Used by some member fields to mean present (e.g., norms, deletions).

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SegmentInfo(Directory dir, Version version, Version minVersion, String name, int maxDoc, boolean isCompoundFile, Codec codec, Map<String,String> diagnostics, byte[] id, Map<String,String> attributes, Sort indexSort)` Construct a new complete SegmentInfo instance from input.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addFile(String file)` Add this file to the set of files written for this segment.
    `void` | `addFiles(Collection<String> files)` Add these files to the set of files written for this segment.
    `boolean` | `equals(Object obj)` We consider another SegmentInfo instance equal if it has the same dir and same name.
    `Set<String>` | `files()` Return all files referenced by this SegmentInfo.
    `String` | `getAttribute(String key)` Get a codec attribute value, or null if it does not exist
    `Map<String,String>` | `getAttributes()` Returns the internal codec attributes map.
    `Codec` | `getCodec()` Return `Codec` that wrote this segment.
    `Map<String,String>` | `getDiagnostics()` Returns diagnostics saved into the segment when it was written.
    `byte[]` | `getId()` Return the id that uniquely identifies this segment.
    `Sort` | `getIndexSort()` Return the sort order of this segment, or null if the index has no sort.
    `Version` | `getMinVersion()` Return the minimum Lucene version that contributed documents to this segment, or `null` if it is unknown.
    `boolean` | `getUseCompoundFile()` Returns true if this segment is stored as a compound file; else, false.
    `Version` | `getVersion()` Returns the version of the code which wrote the segment.
    `int` | `hashCode()`
    `int` | `maxDoc()` Returns number of documents in this segment (deletions are not taken into account).
    `String` | `putAttribute(String key, String value)` Puts a codec attribute value.
    `void` | `setCodec(Codec codec)` Can only be called once.
    `void` | `setFiles(Collection<String> files)` Sets the files written for this segment.
    `String` | `toString()`
    `String` | `toString(int delCount)` Used for debugging.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### NO

          public static final int NO

      Used by some member fields to mean not present (e.g., norms, deletions).
      See Also:
        Constant Field Values

    - #### YES

          public static final int YES

      Used by some member fields to mean present (e.g., norms, deletions).
      See Also:
        Constant Field Values

    - #### name

          public final String name

      Unique segment name in the directory.

    - #### dir

          public final Directory dir

      Where this segment resides.

  - ### Constructor Detail

    - #### SegmentInfo

          public SegmentInfo(Directory dir,
                             Version version,
                             Version minVersion,
                             String name,
                             int maxDoc,
                             boolean isCompoundFile,
                             Codec codec,
                             Map<String,String> diagnostics,
                             byte[] id,
                             Map<String,String> attributes,
                             Sort indexSort)

      Construct a new complete SegmentInfo instance from input.

      Note: this is public only to allow access from the codecs package.

  - ### Method Detail

    - #### getDiagnostics

          public Map<String,String> getDiagnostics()

      Returns diagnostics saved into the segment when it was written. The map is immutable.

    - #### getUseCompoundFile

          public boolean getUseCompoundFile()

      Returns true if this segment is stored as a compound file; else, false.

    - #### setCodec

          public void setCodec(Codec codec)

      Can only be called once.

    - #### getCodec

          public Codec getCodec()

      Return `Codec` that wrote this segment.

    - #### maxDoc

          public int maxDoc()

      Returns number of documents in this segment (deletions are not taken into account).

    - #### files

          public Set<String> files()

      Return all files referenced by this SegmentInfo.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### toString

          public String toString(int delCount)

      Used for debugging. Format may suddenly change.

      Current format looks like `_a(3.1):c45/4:[sorter=<long: "timestamp">!]`, which means the segment's name is `_a`; it was created with Lucene 3.1 (or '?' if it's unknown); it's using compound file format (would be `C` if not compound); it has 45 documents; it has 4 deletions (this part is left off when there are no deletions); it is sorted by the timestamp field in descending order (this part is omitted for unsorted segments).

    - #### equals

          public boolean equals(Object obj)

      We consider another SegmentInfo instance equal if it has the same dir and same name.
      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### getVersion

          public Version getVersion()

      Returns the version of the code which wrote the segment.

    - #### getMinVersion

          public Version getMinVersion()

      Return the minimum Lucene version that contributed documents to this segment, or `null` if it is unknown.

    - #### getId

          public byte[] getId()

      Return the id that uniquely identifies this segment.

    - #### setFiles

          public void setFiles(Collection<String> files)

      Sets the files written for this segment.

    - #### addFiles

          public void addFiles(Collection<String> files)

      Add these files to the set of files written for this segment.

    - #### addFile

          public void addFile(String file)

      Add this file to the set of files written for this segment.

    - #### getAttribute

          public String getAttribute(String key)

      Get a codec attribute value, or null if it does not exist

    - #### putAttribute

          public String putAttribute(String key,
                                     String value)

      Puts a codec attribute value.

      This is a key-value mapping for the field that the codec can use to store additional metadata, and will be available to the codec when reading the segment via `getAttribute(String)`

      If a value already exists for the field, it will be replaced with the new value. This method make a copy on write for every attribute change.

    - #### getAttributes

          public Map<String,String> getAttributes()

      Returns the internal codec attributes map.
      Returns:
        internal codec attributes map.

    - #### getIndexSort

          public Sort getIndexSort()

      Return the sort order of this segment, or null if the index has no sort.

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.