@@ -73,6 +73,7 @@ pub struct SegmentWriter {
7373 per_field_text_analyzers : Vec < TextAnalyzer > ,
7474 term_buffer : Term ,
7575 schema : Schema ,
76+ ignore_store : bool ,
7677}
7778
7879impl SegmentWriter {
@@ -85,7 +86,11 @@ impl SegmentWriter {
8586 /// behavior as a memory limit.
8687 /// - segment: The segment being written
8788 /// - schema
88- pub fn for_segment ( memory_budget_in_bytes : usize , segment : Segment ) -> crate :: Result < Self > {
89+ pub fn for_segment (
90+ memory_budget_in_bytes : usize ,
91+ segment : Segment ,
92+ ignore_store : bool ,
93+ ) -> crate :: Result < Self > {
8994 let schema = segment. schema ( ) ;
9095 let tokenizer_manager = segment. index ( ) . tokenizers ( ) . clone ( ) ;
9196 let tokenizer_manager_fast_field = segment. index ( ) . fast_field_tokenizer ( ) . clone ( ) ;
@@ -130,6 +135,7 @@ impl SegmentWriter {
130135 per_field_text_analyzers,
131136 term_buffer : Term :: with_capacity ( 16 ) ,
132137 schema,
138+ ignore_store,
133139 } )
134140 }
135141
@@ -156,6 +162,7 @@ impl SegmentWriter {
156162 & self . fieldnorms_writer ,
157163 self . segment_serializer ,
158164 mapping. as_ref ( ) ,
165+ self . ignore_store ,
159166 ) ?;
160167 let doc_opstamps = remap_doc_opstamps ( self . doc_opstamps , mapping. as_ref ( ) ) ;
161168 Ok ( doc_opstamps)
@@ -420,6 +427,7 @@ fn remap_and_write(
420427 fieldnorms_writer : & FieldNormsWriter ,
421428 mut serializer : SegmentSerializer ,
422429 doc_id_map : Option < & DocIdMapping > ,
430+ ignore_store : bool ,
423431) -> crate :: Result < ( ) > {
424432 debug ! ( "remap-and-write" ) ;
425433 if let Some ( fieldnorms_serializer) = serializer. extract_fieldnorms_serializer ( ) {
@@ -429,7 +437,6 @@ fn remap_and_write(
429437 . segment ( )
430438 . open_read ( SegmentComponent :: FieldNorms ) ?;
431439 let fieldnorm_readers = FieldNormReaders :: open ( fieldnorm_data) ?;
432- let uses_store = schema. fields ( ) . any ( |( _, entry) | entry. is_stored ( ) ) ;
433440 serialize_postings (
434441 ctx,
435442 schema,
@@ -442,7 +449,7 @@ fn remap_and_write(
442449 fast_field_writers. serialize ( serializer. get_fast_field_write ( ) , doc_id_map) ?;
443450
444451 // finalize temp docstore and create version, which reflects the doc_id_map
445- if uses_store {
452+ if !ignore_store {
446453 if let Some ( doc_id_map) = doc_id_map {
447454 debug ! ( "resort-docstore" ) ;
448455 let store_write = serializer
0 commit comments