Search in sources :

Example 1 with NormsFormat

use of org.apache.lucene.codecs.NormsFormat in project lucene-solr by apache.

the class DefaultIndexingChain method writeNorms.

private void writeNorms(SegmentWriteState state, Sorter.DocMap sortMap) throws IOException {
    boolean success = false;
    NormsConsumer normsConsumer = null;
    try {
        if (state.fieldInfos.hasNorms()) {
            NormsFormat normsFormat = state.segmentInfo.getCodec().normsFormat();
            assert normsFormat != null;
            normsConsumer = normsFormat.normsConsumer(state);
            for (FieldInfo fi : state.fieldInfos) {
                PerField perField = getPerField(fi.name);
                assert perField != null;
                // changed for this field since the first time we added it.
                if (fi.omitsNorms() == false && fi.getIndexOptions() != IndexOptions.NONE) {
                    assert perField.norms != null : "field=" + fi.name;
                    perField.norms.finish(state.segmentInfo.maxDoc());
                    perField.norms.flush(state, sortMap, normsConsumer);
                }
            }
        }
        success = true;
    } finally {
        if (success) {
            IOUtils.close(normsConsumer);
        } else {
            IOUtils.closeWhileHandlingException(normsConsumer);
        }
    }
}
Also used : NormsConsumer(org.apache.lucene.codecs.NormsConsumer) NormsFormat(org.apache.lucene.codecs.NormsFormat)

Aggregations

NormsConsumer (org.apache.lucene.codecs.NormsConsumer)1 NormsFormat (org.apache.lucene.codecs.NormsFormat)1