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 Details

    • NO

      public static final int NO
      Used by some member fields to mean not present (e.g., norms, deletions).
      See Also:
    • YES

      public static final int YES
      Used by some member fields to mean present (e.g., norms, deletions).
      See Also:
    • name

      public final String name
      Unique segment name in the directory.
    • dir

      public final Directory dir
      Where this segment resides.
  • Constructor Details

    • 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 Details

    • addDiagnostics

      public void addDiagnostics(Map<String,String> diagnostics)
      Adds or modifies this segment's diagnostics.

      Entries in the given map whose keys are not present in the current diagnostics are added. Otherwise, existing entries are modified with the given map's value.

      Parameters:
      diagnostics - the additional diagnostics
    • 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.