Class SegmentInfo


  • public final class SegmentInfo
    extends Object
    Information about a segment such as it's name, directory, and files related to the segment.
    • 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,
                           String version,
                           String name,
                           int docCount,
                           boolean isCompoundFile,
                           Codec codec,
                           Map<String,​String> diagnostics)
        Construct a new complete SegmentInfo instance from input.

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

      • SegmentInfo

        public SegmentInfo​(Directory dir,
                           String version,
                           String name,
                           int docCount,
                           boolean isCompoundFile,
                           Codec codec,
                           Map<String,​String> diagnostics,
                           Map<String,​String> attributes)
        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.
      • 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.
      • getDocCount

        public int getDocCount()
        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​(Directory dir,
                               int delCount)
        Used for debugging. Format may suddenly change.

        Current format looks like _a(3.1):c45/4, 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).

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

        public void setVersion​(String version)
        Used by DefaultSegmentInfosReader to upgrade a 3.0 segment to record its version is "3.0". This method can be removed when we're not required to support 3x indexes anymore, e.g. in 5.0.

        NOTE: this method is used for internal purposes only - you should not modify the version of a SegmentInfo, or it may result in unexpected exceptions thrown when you attempt to open the index.

      • getVersion

        public String getVersion()
        Returns the version of the code which wrote the segment.
      • setFiles

        public void setFiles​(Set<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

        @Deprecated
        public String getAttribute​(String key)
        Deprecated.
        no longer supported
        Get a codec attribute value, or null if it does not exist
      • putAttribute

        @Deprecated
        public String putAttribute​(String key,
                                   String value)
        Deprecated.
        no longer supported
        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.

      • attributes

        @Deprecated
        public Map<String,​String> attributes()
        Deprecated.
        no longer supported
        Returns the internal codec attributes map.
        Returns:
        internal codec attributes map. May be null if no mappings exist.