Example usage for org.apache.lucene.index CodecReader terms

List of usage examples for org.apache.lucene.index CodecReader terms

Introduction

In this page you can find the example usage for org.apache.lucene.index CodecReader terms.

Prototype

@Override
    public final Terms terms(String field) throws IOException 

Source Link

Usage

From source file:org.elasticsearch.index.merge.policy.VersionFieldUpgrader.java

License:Apache License

static CodecReader wrap(CodecReader reader) throws IOException {
    final FieldInfos fieldInfos = reader.getFieldInfos();
    final FieldInfo versionInfo = fieldInfos.fieldInfo(VersionFieldMapper.NAME);
    if (versionInfo != null && versionInfo.getDocValuesType() != DocValuesType.NONE) {
        // the reader is a recent one, it has versions and they are stored
        // in a numeric doc values field
        return reader;
    }//from   w w w . j  a  v  a2s.co m
    // The segment is an old one, look at the _uid field
    final Terms terms = reader.terms(UidFieldMapper.NAME);
    if (terms == null || !terms.hasPayloads()) {
        // The segment doesn't have an _uid field or doesn't have payloads
        // don't try to do anything clever. If any other segment has versions
        // all versions of this segment will be initialized to 0
        return reader;
    }
    // convert _uid payloads -> _version docvalues
    return new VersionFieldUpgrader(reader);
}