Example usage for org.apache.lucene.index SegmentInfo getDiagnostics

List of usage examples for org.apache.lucene.index SegmentInfo getDiagnostics

Introduction

In this page you can find the example usage for org.apache.lucene.index SegmentInfo getDiagnostics.

Prototype

public Map<String, String> getDiagnostics() 

Source Link

Document

Returns diagnostics saved into the segment when it was written.

Usage

From source file:org.apache.blur.lucene.codec.Blur022SegmentInfoWriter.java

License:Apache License

@Override
public void write(Directory dir, SegmentInfo si, FieldInfos fis, IOContext ioContext) throws IOException {
    final String fileName = IndexFileNames.segmentFileName(si.name, "", Blur022SegmentInfoFormat.SI_EXTENSION);
    si.addFile(fileName);/*from  w  ww .j a va 2  s. c  o m*/

    final IndexOutput output = dir.createOutput(fileName, ioContext);

    boolean success = false;
    try {
        CodecUtil.writeHeader(output, Blur022SegmentInfoFormat.CODEC_NAME,
                Blur022SegmentInfoFormat.VERSION_CURRENT);
        output.writeString(si.getVersion());
        output.writeInt(si.getDocCount());

        output.writeByte((byte) (si.getUseCompoundFile() ? SegmentInfo.YES : SegmentInfo.NO));
        output.writeStringStringMap(si.getDiagnostics());
        Map<String, String> attributes = si.attributes();
        TreeMap<String, String> newAttributes = new TreeMap<String, String>();
        if (attributes != null) {
            newAttributes.putAll(attributes);
        }
        newAttributes.put(Blur022StoredFieldsFormat.STORED_FIELDS_FORMAT_CHUNK_SIZE,
                Integer.toString(_compressionChunkSize));
        newAttributes.put(Blur022StoredFieldsFormat.STORED_FIELDS_FORMAT_COMPRESSION_MODE, _compressionMode);
        output.writeStringStringMap(newAttributes);
        output.writeStringSet(si.files());

        success = true;
    } finally {
        if (!success) {
            IOUtils.closeWhileHandlingException(output);
            si.dir.deleteFile(fileName);
        } else {
            output.close();
        }
    }
}