LUCENE-2811: use boolean for SI.hasVectors

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1049187 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael McCandless 2010-12-14 17:30:38 +00:00
parent 94848afc65
commit 7065133f3a
1 changed files with 16 additions and 30 deletions

View File

@ -80,7 +80,7 @@ public final class SegmentInfo {
private boolean hasProx; // True if this segment has any fields with omitTermFreqAndPositions==false private boolean hasProx; // True if this segment has any fields with omitTermFreqAndPositions==false
private byte hasVectors; // 0 if no; 1 if yes; 2 if must-check-filesystem (old index) private boolean hasVectors; // True if this segment wrote term vectors
private SegmentCodecs segmentCodecs; private SegmentCodecs segmentCodecs;
@ -99,7 +99,7 @@ public final class SegmentInfo {
this.docStoreIsCompoundFile = docStoreIsCompoundFile; this.docStoreIsCompoundFile = docStoreIsCompoundFile;
this.hasProx = hasProx; this.hasProx = hasProx;
this.segmentCodecs = segmentCodecs; this.segmentCodecs = segmentCodecs;
this.hasVectors = (byte) (hasVectors ? 1 : 0); this.hasVectors = hasVectors;
delCount = 0; delCount = 0;
assert docStoreOffset == -1 || docStoreSegment != null: "dso=" + docStoreOffset + " dss=" + docStoreSegment + " docCount=" + docCount; assert docStoreOffset == -1 || docStoreSegment != null: "dso=" + docStoreOffset + " dss=" + docStoreSegment + " docCount=" + docCount;
} }
@ -191,9 +191,15 @@ public final class SegmentInfo {
diagnostics = input.readStringStringMap(); diagnostics = input.readStringStringMap();
if (format <= DefaultSegmentInfosWriter.FORMAT_HAS_VECTORS) { if (format <= DefaultSegmentInfosWriter.FORMAT_HAS_VECTORS) {
hasVectors = input.readByte(); hasVectors = input.readByte() == 1;
} else { } else {
hasVectors = 2; final String storesSegment;
if (docStoreOffset != -1) {
storesSegment = docStoreSegment;
} else {
storesSegment = name;
}
hasVectors = dir.fileExists(IndexFileNames.segmentFileName(storesSegment, "", IndexFileNames.VECTORS_INDEX_EXTENSION));
} }
} }
@ -216,23 +222,11 @@ public final class SegmentInfo {
} }
public boolean getHasVectors() throws IOException { public boolean getHasVectors() throws IOException {
if (hasVectors == 1) { return hasVectors;
return true;
} else if (hasVectors == 0) {
return false;
} else {
final String storesSegment;
if (getDocStoreOffset() != -1) {
storesSegment = getDocStoreSegment();
} else {
storesSegment = name;
}
return dir.fileExists(IndexFileNames.segmentFileName(storesSegment, "", IndexFileNames.VECTORS_INDEX_EXTENSION));
}
} }
public void setHasVectors(boolean v) { public void setHasVectors(boolean v) {
hasVectors = (byte) (v ? 1 : 0); hasVectors = v;
clearFiles(); clearFiles();
} }
@ -432,7 +426,7 @@ public final class SegmentInfo {
output.writeByte((byte) (hasProx ? 1:0)); output.writeByte((byte) (hasProx ? 1:0));
segmentCodecs.write(output); segmentCodecs.write(output);
output.writeStringStringMap(diagnostics); output.writeStringStringMap(diagnostics);
output.writeByte(hasVectors); output.writeByte((byte) (hasVectors ? 1 : 0));
} }
void setHasProx(boolean hasProx) { void setHasProx(boolean hasProx) {
@ -497,27 +491,19 @@ public final class SegmentInfo {
} else { } else {
fileSet.add(IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.FIELDS_INDEX_EXTENSION)); fileSet.add(IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.FIELDS_INDEX_EXTENSION));
fileSet.add(IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.FIELDS_EXTENSION)); fileSet.add(IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.FIELDS_EXTENSION));
if (hasVectors == 1) { if (hasVectors) {
fileSet.add(IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.VECTORS_INDEX_EXTENSION)); fileSet.add(IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.VECTORS_INDEX_EXTENSION));
fileSet.add(IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.VECTORS_DOCUMENTS_EXTENSION)); fileSet.add(IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.VECTORS_DOCUMENTS_EXTENSION));
fileSet.add(IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.VECTORS_FIELDS_EXTENSION)); fileSet.add(IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.VECTORS_FIELDS_EXTENSION));
} else if (hasVectors == 2) { }
addIfExists(fileSet, IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.VECTORS_INDEX_EXTENSION));
addIfExists(fileSet, IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.VECTORS_DOCUMENTS_EXTENSION));
addIfExists(fileSet, IndexFileNames.segmentFileName(docStoreSegment, "", IndexFileNames.VECTORS_FIELDS_EXTENSION));
}
} }
} else if (!useCompoundFile) { } else if (!useCompoundFile) {
fileSet.add(IndexFileNames.segmentFileName(name, "", IndexFileNames.FIELDS_INDEX_EXTENSION)); fileSet.add(IndexFileNames.segmentFileName(name, "", IndexFileNames.FIELDS_INDEX_EXTENSION));
fileSet.add(IndexFileNames.segmentFileName(name, "", IndexFileNames.FIELDS_EXTENSION)); fileSet.add(IndexFileNames.segmentFileName(name, "", IndexFileNames.FIELDS_EXTENSION));
if (hasVectors == 1) { if (hasVectors) {
fileSet.add(IndexFileNames.segmentFileName(name, "", IndexFileNames.VECTORS_INDEX_EXTENSION)); fileSet.add(IndexFileNames.segmentFileName(name, "", IndexFileNames.VECTORS_INDEX_EXTENSION));
fileSet.add(IndexFileNames.segmentFileName(name, "", IndexFileNames.VECTORS_DOCUMENTS_EXTENSION)); fileSet.add(IndexFileNames.segmentFileName(name, "", IndexFileNames.VECTORS_DOCUMENTS_EXTENSION));
fileSet.add(IndexFileNames.segmentFileName(name, "", IndexFileNames.VECTORS_FIELDS_EXTENSION)); fileSet.add(IndexFileNames.segmentFileName(name, "", IndexFileNames.VECTORS_FIELDS_EXTENSION));
} else if (hasVectors == 2) {
addIfExists(fileSet, IndexFileNames.segmentFileName(name, "", IndexFileNames.VECTORS_INDEX_EXTENSION));
addIfExists(fileSet, IndexFileNames.segmentFileName(name, "", IndexFileNames.VECTORS_DOCUMENTS_EXTENSION));
addIfExists(fileSet, IndexFileNames.segmentFileName(name, "", IndexFileNames.VECTORS_FIELDS_EXTENSION));
} }
} }