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.
  • 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.
    • maxDoc

      private int maxDoc
    • dir

      public final Directory dir
      Where this segment resides.
    • isCompoundFile

      private boolean isCompoundFile
    • id

      private final byte[] id
      Id that uniquely identifies this segment.
    • codec

      private Codec codec
    • diagnostics

      private Map<String,String> diagnostics
    • attributes

      private Map<String,String> attributes
    • indexSort

      private final Sort indexSort
    • version

      private final Version version
    • minVersion

      Version minVersion
    • setFiles

      private Set<String> setFiles
  • 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

    • setDiagnostics

      void setDiagnostics(Map<String,String> diagnostics)
    • getDiagnostics

      public Map<String,String> getDiagnostics()
      Returns diagnostics saved into the segment when it was written. The map is immutable.
    • setUseCompoundFile

      void setUseCompoundFile(boolean isCompoundFile)
      Mark whether this segment is stored as a compound file.
      Parameters:
      isCompoundFile - true if this is a compound file; else, false
    • 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).
    • setMaxDoc

      void setMaxDoc(int maxDoc)
    • 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.
    • checkFileNames

      private void checkFileNames(Collection<String> files)
    • namedForThisSegment

      String namedForThisSegment(String file)
      strips any segment name from the file, naming it with this segment this is because "segment names" can change, e.g. by addIndexes(Dir)
    • 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.