mirror of
https://github.com/quickwit-oss/tantivy.git
synced 2026-01-11 03:22:55 +00:00
NOBUG cleanup
This commit is contained in:
@@ -14,41 +14,69 @@ struct DeleteMeta {
|
||||
#[derive(Clone, Debug, RustcDecodable,RustcEncodable)]
|
||||
pub struct SegmentMeta {
|
||||
segment_id: SegmentId,
|
||||
num_docs: u32,
|
||||
max_doc: u32,
|
||||
deletes: Option<DeleteMeta>,
|
||||
}
|
||||
|
||||
impl SegmentMeta {
|
||||
|
||||
/// Creates a new segment meta for
|
||||
/// a segment with no deletes and no documents.
|
||||
pub fn new(segment_id: SegmentId) -> SegmentMeta {
|
||||
SegmentMeta {
|
||||
segment_id: segment_id,
|
||||
num_docs: 0,
|
||||
max_doc: 0,
|
||||
deletes: None,
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns the segment id.
|
||||
pub fn id(&self) -> SegmentId {
|
||||
self.segment_id
|
||||
}
|
||||
|
||||
pub fn num_docs(&self) -> u32 {
|
||||
self.num_docs
|
||||
}
|
||||
/// Returns the number of deleted documents.
|
||||
pub fn num_deleted_docs(&self) -> u32 {
|
||||
self.deletes
|
||||
.as_ref()
|
||||
.map(|delete_meta| delete_meta.num_deleted_docs)
|
||||
.unwrap_or(0u32)
|
||||
}
|
||||
|
||||
/// Return the highest doc id + 1
|
||||
///
|
||||
/// If there are no deletes, then num_docs = max_docs
|
||||
/// and all the doc ids contains in this segment
|
||||
/// are exactly (0..max_doc).
|
||||
pub fn max_doc(&self) -> u32 {
|
||||
self.max_doc
|
||||
}
|
||||
|
||||
/// Return the number of documents in the segment.
|
||||
pub fn num_docs(&self) -> u32 {
|
||||
self.max_doc() - self.num_deleted_docs()
|
||||
}
|
||||
|
||||
/// Returns the opstamp of the last delete operation
|
||||
/// taken in account in this segment.
|
||||
pub fn delete_opstamp(&self) -> Option<u64> {
|
||||
self.deletes
|
||||
.as_ref()
|
||||
.map(|delete_meta| delete_meta.opstamp)
|
||||
}
|
||||
|
||||
/// Returns true iff the segment meta contains
|
||||
/// delete information.
|
||||
pub fn has_deletes(&self) -> bool {
|
||||
self.deletes.is_some()
|
||||
}
|
||||
|
||||
pub fn set_num_docs(&mut self, num_docs: u32) {
|
||||
self.num_docs = num_docs;
|
||||
#[doc(hidden)]
|
||||
pub fn set_max_doc(&mut self, max_doc: u32) {
|
||||
self.max_doc = max_doc;
|
||||
}
|
||||
|
||||
#[doc(hidden)]
|
||||
pub fn set_delete_meta(&mut self, num_deleted_docs: u32, opstamp: u64) {
|
||||
self.deletes = Some(DeleteMeta {
|
||||
num_deleted_docs: num_deleted_docs,
|
||||
|
||||
@@ -33,7 +33,7 @@ fn test_indexing() {
|
||||
for _ in 0..200 {
|
||||
let random_val = universe.ind_sample(&mut rng);
|
||||
if random_val == 0 {
|
||||
index_writer.commit();
|
||||
index_writer.commit().expect("Commit failed");
|
||||
committed_docs.extend(&uncommitted_docs);
|
||||
uncommitted_docs.clear();
|
||||
index.load_searchers().unwrap();
|
||||
|
||||
@@ -242,7 +242,7 @@ fn index_documents(heap: &mut Heap,
|
||||
|
||||
// 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);
|
||||
segment_meta.set_max_doc(num_docs);
|
||||
|
||||
let mut segment_entry = SegmentEntry::new(segment_meta);
|
||||
segment_entry.set_doc_to_opstamp(DocToOpstampMapping::from(doc_opstamps));
|
||||
|
||||
@@ -122,7 +122,7 @@ mod tests {
|
||||
|
||||
fn seg_meta(num_docs: u32) -> SegmentMeta {
|
||||
let mut segment_metas = SegmentMeta::new(SegmentId::generate_random());
|
||||
segment_metas.set_num_docs(num_docs);
|
||||
segment_metas.set_max_doc(num_docs);
|
||||
segment_metas
|
||||
}
|
||||
|
||||
|
||||
@@ -247,7 +247,7 @@ impl SegmentUpdater {
|
||||
|
||||
let num_docs = merger.write(segment_serializer).expect("Serializing merged index failed");
|
||||
let mut segment_meta = SegmentMeta::new(merged_segment.id());
|
||||
segment_meta.set_num_docs(num_docs);
|
||||
segment_meta.set_max_doc(num_docs);
|
||||
|
||||
let segment_entry = SegmentEntry::new(segment_meta);
|
||||
segment_updater_clone
|
||||
|
||||
Reference in New Issue
Block a user