Class 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 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​(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.