mirror of
https://github.com/quickwit-oss/tantivy.git
synced 2026-01-15 05:22:54 +00:00
werwer
This commit is contained in:
@@ -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(),
|
||||
|
||||
@@ -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
20
src/core/store.rs
Normal 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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user