This commit is contained in:
Paul Masurel
2016-02-20 11:46:06 +09:00
parent e13262e70b
commit 9112eaaf03
4 changed files with 29 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ use core::directory::SegmentComponent;
use core::reader::*;
use core::schema::Term;
use core::DocId;
use core::store::StoreWriter;
use std::fs::File;
use core::simdcompression;
use core::schema::FieldValue;
@@ -22,7 +23,7 @@ pub struct SimpleSegmentSerializer {
segment: Segment,
written_bytes_postings: usize,
postings_write: File,
store_write: File,
store_writer: StoreWriter,
term_fst_builder: MapBuilder<File>, // TODO find an alternative to work around the "move"
cur_term_num_docs: DocId,
encoder: simdcompression::Encoder,
@@ -102,7 +103,7 @@ impl SimpleCodec {
segment: segment.clone(),
written_bytes_postings: 0,
postings_write: postings_write,
store_write: store_write,
store_writer: StoreWriter::new(store_write),
term_fst_builder: term_fst_builder,
cur_term_num_docs: 0,
encoder: simdcompression::Encoder::new(),

View File

@@ -15,4 +15,5 @@ pub mod collector;
pub mod skip;
pub use core::global::DocId;
pub mod serialize;
pub mod store;
pub mod simdcompression;

20
src/core/store.rs Normal file
View File

@@ -0,0 +1,20 @@
use std::io::BufWriter;
use std::fs::File;
use core::schema::Document;
pub struct StoreWriter {
writer: BufWriter<File>,
}
impl StoreWriter {
pub fn new(file: File) -> StoreWriter {
StoreWriter {
writer: BufWriter::new(file),
}
}
pub fn store(doc: &Document) {
}
}

View File

@@ -165,7 +165,11 @@ impl SegmentWriter {
}
}
}
let mut stored_field_it = doc.fields().filter(|field_value| {
let field_options = schema.get_field(field_value.field.clone());
return field_options.is_stored();
});
self.segment_serializer.store_doc(&mut stored_field_it);
self.max_doc += 1;
}