mirror of
https://github.com/quickwit-oss/tantivy.git
synced 2026-05-17 08:40:41 +00:00
issue/43 Avoid keeping segments with 0 documents.
This commit is contained in:
@@ -243,7 +243,8 @@ impl Index {
|
||||
let mut searchers = Vec::new();
|
||||
for _ in 0..NUM_SEARCHERS {
|
||||
let searchable_segments_clone = searchable_segments.clone();
|
||||
let segment_readers: Vec<SegmentReader> = try!(searchable_segments_clone.into_iter()
|
||||
let segment_readers: Vec<SegmentReader> = try!(searchable_segments_clone
|
||||
.into_iter()
|
||||
.map(SegmentReader::open)
|
||||
.collect());
|
||||
let searcher = Searcher::from(segment_readers);
|
||||
|
||||
@@ -155,16 +155,14 @@ fn index_documents(heap: &mut Heap,
|
||||
// this is ensured by the call to peek before starting
|
||||
// the worker thread.
|
||||
assert!(num_docs > 0);
|
||||
|
||||
segment
|
||||
.meta_mut()
|
||||
.set_num_docs(num_docs);
|
||||
|
||||
|
||||
let doc_opstamps: Vec<u64> = segment_writer.finalize()?;
|
||||
|
||||
// let segment_entry = advance_deletes(&mut segment, delete_queue, delete_position, )?;
|
||||
let mut segment_meta = SegmentMeta::new(segment.id());
|
||||
segment_meta.set_num_docs(num_docs);
|
||||
|
||||
let mut segment_entry = SegmentEntry::new(SegmentMeta::new(segment.id()));
|
||||
let mut segment_entry = SegmentEntry::new(segment_meta);
|
||||
segment_entry.set_doc_to_opstamp(DocToOpstampMapping::from(doc_opstamps));
|
||||
|
||||
segment_updater
|
||||
|
||||
@@ -83,9 +83,11 @@ impl IndexMerger {
|
||||
let mut readers = vec!();
|
||||
let mut max_doc = 0;
|
||||
for segment in segments {
|
||||
let reader = SegmentReader::open(segment.clone())?;
|
||||
max_doc += reader.num_docs();
|
||||
readers.push(reader);
|
||||
if segment.meta().num_docs() > 0 {
|
||||
let reader = SegmentReader::open(segment.clone())?;
|
||||
max_doc += reader.num_docs();
|
||||
readers.push(reader);
|
||||
}
|
||||
}
|
||||
Ok(IndexMerger {
|
||||
schema: schema,
|
||||
|
||||
Reference in New Issue
Block a user