From 85fb0cc20abaa4a8b1daa0f13fd5cf3afd6c3f4d Mon Sep 17 00:00:00 2001 From: PSeitz Date: Tue, 25 May 2021 14:48:02 +0200 Subject: [PATCH] cache field norm reader in merge (#1061) --- src/indexer/merger.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/indexer/merger.rs b/src/indexer/merger.rs index 93b11120b..df15a925b 100644 --- a/src/indexer/merger.rs +++ b/src/indexer/merger.rs @@ -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 = self + .readers + .iter() + .map(|reader| reader.get_fieldnorms_reader(field)) + .collect::>()?; 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); }