## org.apache.lucene.index
Class SegmentInfo

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

All Implemented Interfaces:
  Cloneable

    public final class SegmentInfo

extends Object
implements Cloneable

Information about a segment such as it's 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
`Directory` `dir`
`int` `docCount`
`String` `name`

Constructor Summary
`SegmentInfo(String name, int docCount, Directory dir, boolean isCompoundFile, boolean hasSingleNormFile, boolean hasProx, boolean hasVectors)`

Method Summary
`Object` `clone()`
`boolean` `equals(Object obj)` We consider another SegmentInfo instance equal if it has the same dir and same name.
`List<String>` `files()`
`int` `getDelCount()`
`String` `getDelFileName()`
`Map<String,String>` `getDiagnostics()`
`boolean` `getDocStoreIsCompoundFile()`
`int` `getDocStoreOffset()`
`String` `getDocStoreSegment()`
`boolean` `getHasProx()`
`boolean` `getHasVectors()`
`String` `getNormFileName(int number)` Get the file name for the norms file for this field.
`boolean` `getUseCompoundFile()` Returns true if this segment is stored as a compound file; else, false.
`String` `getVersion()` Returns the version of the code which wrote the segment.
`boolean` `hasDeletions()`
`int` `hashCode()`
`boolean` `hasSeparateNorms()` Returns true if any fields in this segment have separate norms.
`boolean` `hasSeparateNorms(int fieldNumber)` Returns true if this field for this segment has saved a separate norms file (_<segment>_N.sX).
`void` `setDocStoreSegment(String segment)`
`void` `setHasVectors(boolean v)`
`long` `sizeInBytes(boolean includeDocStores)` Returns total size in bytes of all of files used by this segment (if `includeDocStores` is true), or the size of all files except the store files otherwise.
`String` `toString()`
`String` `toString(Directory dir, int pendingDelCount)` Used for debugging.

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### name

    public String name

### docCount

    public int docCount

### dir

    public Directory dir

Constructor Detail

### SegmentInfo

    public SegmentInfo(String name,
                       int docCount,
                       Directory dir,
                       boolean isCompoundFile,
                       boolean hasSingleNormFile,
                       boolean hasProx,
                       boolean hasVectors)

Method Detail

### getDiagnostics

    public Map<String,String> getDiagnostics()

### sizeInBytes

    public long sizeInBytes(boolean includeDocStores)
                     throws IOException

  Returns total size in bytes of all of files used by this segment (if `includeDocStores` is true), or the size of all files except the store files otherwise.

  Throws:
    `IOException`

### getHasVectors

    public boolean getHasVectors()
                          throws IOException

  Throws:
    `IOException`

### setHasVectors

    public void setHasVectors(boolean v)

### hasDeletions

    public boolean hasDeletions()
                         throws IOException

  Throws:
    `IOException`

### clone

    public Object clone()

  Overrides:
    `clone` in class `Object`

### getDelFileName

    public String getDelFileName()

### hasSeparateNorms

    public boolean hasSeparateNorms(int fieldNumber)
                             throws IOException

  Returns true if this field for this segment has saved a separate norms file (_<segment>_N.sX).

  Parameters:
    `fieldNumber` - the field index to check
  Throws:
    `IOException`

### hasSeparateNorms

    public boolean hasSeparateNorms()
                             throws IOException

  Returns true if any fields in this segment have separate norms.

  Throws:
    `IOException`

### getNormFileName

    public String getNormFileName(int number)
                           throws IOException

  Get the file name for the norms file for this field.

  Parameters:
    `number` - field index
  Throws:
    `IOException`

### getUseCompoundFile

    public boolean getUseCompoundFile()
                               throws IOException

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

  Throws:
    `IOException`

### getDelCount

    public int getDelCount()
                    throws IOException

  Throws:
    `IOException`

### getDocStoreOffset

    public int getDocStoreOffset()

### getDocStoreIsCompoundFile

    public boolean getDocStoreIsCompoundFile()

### getDocStoreSegment

    public String getDocStoreSegment()

### setDocStoreSegment

    public void setDocStoreSegment(String segment)

### getHasProx

    public boolean getHasProx()

### files

    public List<String> files()
                       throws IOException

  Throws:
    `IOException`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### toString

    public String toString(Directory dir,
                           int pendingDelCount)

  Used for debugging. Format may suddenly change.

  Current format looks like `_a(3.1):c45/4->_1`, which means the segment's name is `_a`; it was created with Lucene 3.1 (or '?' if it's unkown); 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's using the shared doc stores named `_1` (this part is left off if doc stores are private).

### 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 String getVersion()

  Returns the version of the code which wrote the segment.