public final class SegmentInfo
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.String,java.lang.String> |
attributes |
private Codec |
codec |
private java.util.Map<java.lang.String,java.lang.String> |
diagnostics |
Directory |
dir
Where this segment resides.
|
private byte[] |
id
Id that uniquely identifies this segment.
|
private Sort |
indexSort |
private boolean |
isCompoundFile |
private int |
maxDoc |
(package private) Version |
minVersion |
java.lang.String |
name
Unique segment name in the directory.
|
static int |
NO
Used by some member fields to mean not present (e.g.,
norms, deletions).
|
private java.util.Set<java.lang.String> |
setFiles |
private Version |
version |
static int |
YES
Used by some member fields to mean present (e.g.,
norms, deletions).
|
Constructor and Description |
---|
SegmentInfo(Directory dir,
Version version,
Version minVersion,
java.lang.String name,
int maxDoc,
boolean isCompoundFile,
Codec codec,
java.util.Map<java.lang.String,java.lang.String> diagnostics,
byte[] id,
java.util.Map<java.lang.String,java.lang.String> attributes,
Sort indexSort)
Construct a new complete SegmentInfo instance from input.
|
Modifier and Type | Method and Description |
---|---|
void |
addFile(java.lang.String file)
Add this file to the set of files written for this
segment.
|
void |
addFiles(java.util.Collection<java.lang.String> files)
Add these files to the set of files written for this
segment.
|
private void |
checkFileNames(java.util.Collection<java.lang.String> files) |
boolean |
equals(java.lang.Object obj)
We consider another SegmentInfo instance equal if it
has the same dir and same name.
|
java.util.Set<java.lang.String> |
files()
Return all files referenced by this SegmentInfo.
|
java.lang.String |
getAttribute(java.lang.String key)
Get a codec attribute value, or null if it does not exist
|
java.util.Map<java.lang.String,java.lang.String> |
getAttributes()
Returns the internal codec attributes map.
|
Codec |
getCodec()
Return
Codec that wrote this segment. |
java.util.Map<java.lang.String,java.lang.String> |
getDiagnostics()
Returns diagnostics saved into the segment when it was
written.
|
byte[] |
getId()
Return the id that uniquely identifies this segment.
|
Sort |
getIndexSort()
Return the sort order of this segment, or null if the index has no sort.
|
Version |
getMinVersion()
Return the minimum Lucene version that contributed documents to this
segment, or
null if it is unknown. |
boolean |
getUseCompoundFile()
Returns true if this segment is stored as a compound
file; else, false.
|
Version |
getVersion()
Returns the version of the code which wrote the segment.
|
int |
hashCode() |
int |
maxDoc()
Returns number of documents in this segment (deletions
are not taken into account).
|
(package private) java.lang.String |
namedForThisSegment(java.lang.String file)
strips any segment name from the file, naming it with this segment
this is because "segment names" can change, e.g.
|
java.lang.String |
putAttribute(java.lang.String key,
java.lang.String value)
Puts a codec attribute value.
|
void |
setCodec(Codec codec)
Can only be called once.
|
(package private) void |
setDiagnostics(java.util.Map<java.lang.String,java.lang.String> diagnostics) |
void |
setFiles(java.util.Collection<java.lang.String> files)
Sets the files written for this segment.
|
(package private) void |
setMaxDoc(int maxDoc) |
(package private) void |
setUseCompoundFile(boolean isCompoundFile)
Mark whether this segment is stored as a compound file.
|
java.lang.String |
toString() |
java.lang.String |
toString(int delCount)
Used for debugging.
|
public static final int NO
public static final int YES
public final java.lang.String name
private int maxDoc
public final Directory dir
private boolean isCompoundFile
private final byte[] id
private Codec codec
private java.util.Map<java.lang.String,java.lang.String> diagnostics
private java.util.Map<java.lang.String,java.lang.String> attributes
private final Sort indexSort
private final Version version
Version minVersion
private java.util.Set<java.lang.String> setFiles
public SegmentInfo(Directory dir, Version version, Version minVersion, java.lang.String name, int maxDoc, boolean isCompoundFile, Codec codec, java.util.Map<java.lang.String,java.lang.String> diagnostics, byte[] id, java.util.Map<java.lang.String,java.lang.String> attributes, Sort indexSort)
Note: this is public only to allow access from the codecs package.
void setDiagnostics(java.util.Map<java.lang.String,java.lang.String> diagnostics)
public java.util.Map<java.lang.String,java.lang.String> getDiagnostics()
void setUseCompoundFile(boolean isCompoundFile)
isCompoundFile
- true if this is a compound file;
else, falsepublic boolean getUseCompoundFile()
public void setCodec(Codec codec)
public int maxDoc()
void setMaxDoc(int maxDoc)
public java.util.Set<java.lang.String> files()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toString(int delCount)
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).
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public Version getVersion()
public Version getMinVersion()
null
if it is unknown.public byte[] getId()
public void setFiles(java.util.Collection<java.lang.String> files)
public void addFiles(java.util.Collection<java.lang.String> files)
public void addFile(java.lang.String file)
private void checkFileNames(java.util.Collection<java.lang.String> files)
java.lang.String namedForThisSegment(java.lang.String file)
public java.lang.String getAttribute(java.lang.String key)
public java.lang.String putAttribute(java.lang.String key, java.lang.String 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.
public java.util.Map<java.lang.String,java.lang.String> getAttributes()
public Sort getIndexSort()