cache field norm reader in merge (#1061)

This commit is contained in:
PSeitz
2021-05-25 21:48:02 +09:00
committed by GitHub
parent 5ef2d56ec2
commit 85fb0cc20a
+6 -1
View File
@@ -237,9 +237,14 @@ impl IndexMerger {
for field in fields {
fieldnorms_data.clear();
if let Some(doc_id_mapping) = doc_id_mapping {
let fieldnorms_readers: Vec<FieldNormReader> = self
.readers
.iter()
.map(|reader| reader.get_fieldnorms_reader(field))
.collect::<Result<_, _>>()?;
for (doc_id, reader_with_ordinal) in doc_id_mapping {
let fieldnorms_reader =
reader_with_ordinal.reader.get_fieldnorms_reader(field)?;
&fieldnorms_readers[reader_with_ordinal.ordinal as usize];
let fieldnorm_id = fieldnorms_reader.fieldnorm_id(*doc_id);
fieldnorms_data.push(fieldnorm_id);
}