From 9112eaaf038b992407bda3000bdb8665c331ac03 Mon Sep 17 00:00:00 2001 From: Paul Masurel Date: Sat, 20 Feb 2016 11:46:06 +0900 Subject: [PATCH] werwer --- src/core/codec.rs | 5 +++-- src/core/mod.rs | 1 + src/core/store.rs | 20 ++++++++++++++++++++ src/core/writer.rs | 6 +++++- 4 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 src/core/store.rs diff --git a/src/core/codec.rs b/src/core/codec.rs index 6d2d663dd..c93a6d22f 100644 --- a/src/core/codec.rs +++ b/src/core/codec.rs @@ -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, // 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(), diff --git a/src/core/mod.rs b/src/core/mod.rs index ea8bd08e5..6c6ffec2f 100644 --- a/src/core/mod.rs +++ b/src/core/mod.rs @@ -15,4 +15,5 @@ pub mod collector; pub mod skip; pub use core::global::DocId; pub mod serialize; +pub mod store; pub mod simdcompression; diff --git a/src/core/store.rs b/src/core/store.rs new file mode 100644 index 000000000..832168433 --- /dev/null +++ b/src/core/store.rs @@ -0,0 +1,20 @@ +use std::io::BufWriter; +use std::fs::File; +use core::schema::Document; + +pub struct StoreWriter { + writer: BufWriter, +} + +impl StoreWriter { + + pub fn new(file: File) -> StoreWriter { + StoreWriter { + writer: BufWriter::new(file), + } + } + + pub fn store(doc: &Document) { + + } +} diff --git a/src/core/writer.rs b/src/core/writer.rs index 6322cc1f5..93c2c01ee 100644 --- a/src/core/writer.rs +++ b/src/core/writer.rs @@ -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; }