mirror of
https://github.com/quickwit-oss/tantivy.git
synced 2026-05-26 13:10:41 +00:00
TODO hunt
This commit is contained in:
@@ -36,7 +36,7 @@ pub enum Error {
|
||||
/// Invalid argument was passed by the user.
|
||||
InvalidArgument(String),
|
||||
/// An Error happened in one of the thread
|
||||
ErrorInThread(String), // TODO investigate better solution
|
||||
ErrorInThread(String),
|
||||
}
|
||||
|
||||
impl From<io::Error> for Error {
|
||||
|
||||
@@ -7,7 +7,7 @@ use std::mem;
|
||||
|
||||
#[derive(Default)]
|
||||
struct InnerDeleteQueue {
|
||||
ro_chunks: ReadOnlyDeletes,
|
||||
ro_chunks: DeleteQueueSnapshot,
|
||||
last_chunk: Vec<DeleteOperation>,
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ impl InnerDeleteQueue {
|
||||
self.last_chunk.push(delete_operation);
|
||||
}
|
||||
|
||||
pub fn snapshot(&mut self,) -> ReadOnlyDeletes {
|
||||
pub fn snapshot(&mut self,) -> DeleteQueueSnapshot {
|
||||
if self.last_chunk.len() > 0 {
|
||||
let new_operations = vec!();
|
||||
let new_ro_chunk = mem::replace(&mut self.last_chunk, new_operations);
|
||||
@@ -33,11 +33,10 @@ impl InnerDeleteQueue {
|
||||
|
||||
|
||||
|
||||
// TODO Rename to DeleteQueueSnapshot
|
||||
#[derive(Default, Clone)]
|
||||
pub struct ReadOnlyDeletes(Vec<Arc<Vec<DeleteOperation>>>);
|
||||
pub struct DeleteQueueSnapshot(Vec<Arc<Vec<DeleteOperation>>>);
|
||||
|
||||
impl ReadOnlyDeletes {
|
||||
impl DeleteQueueSnapshot {
|
||||
fn push(&mut self, operations: Vec<DeleteOperation>) {
|
||||
self.0.push(Arc::new(operations));
|
||||
}
|
||||
@@ -61,7 +60,7 @@ impl DeleteQueue {
|
||||
self.0.write().unwrap().push(delete_operation);
|
||||
}
|
||||
|
||||
pub fn snapshot(&self) -> ReadOnlyDeletes {
|
||||
pub fn snapshot(&self) -> DeleteQueueSnapshot {
|
||||
self.0.write().unwrap().snapshot()
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ use core::SegmentReader;
|
||||
use datastruct::stacker::Heap;
|
||||
use Error;
|
||||
use fastfield::delete::write_delete_bitset;
|
||||
use indexer::delete_queue::ReadOnlyDeletes;
|
||||
use indexer::delete_queue::DeleteQueueSnapshot;
|
||||
use futures::Canceled;
|
||||
use futures::Future;
|
||||
use indexer::delete_queue::DeleteQueue;
|
||||
@@ -94,7 +94,7 @@ impl !Sync for IndexWriter {}
|
||||
|
||||
pub fn advance_deletes(
|
||||
segment: &mut Segment,
|
||||
delete_operations: &ReadOnlyDeletes,
|
||||
delete_operations: &DeleteQueueSnapshot,
|
||||
doc_opstamps: &DocToOpstampMapping) -> Result<SegmentMeta> {
|
||||
let segment_reader = SegmentReader::open(segment.clone())?;
|
||||
let mut delete_bitset = BitSet::with_capacity(segment_reader.max_doc() as usize);
|
||||
@@ -134,14 +134,15 @@ pub fn advance_deletes(
|
||||
}
|
||||
|
||||
fn index_documents(heap: &mut Heap,
|
||||
mut segment: Segment,
|
||||
segment: Segment,
|
||||
schema: &Schema,
|
||||
generation: usize,
|
||||
document_iterator: &mut Iterator<Item=AddOperation>,
|
||||
segment_updater: &mut SegmentUpdater)
|
||||
-> Result<bool> {
|
||||
heap.clear();
|
||||
let mut segment_writer = try!(SegmentWriter::for_segment(heap, segment.clone(), &schema));
|
||||
let segment_id = segment.id();
|
||||
let mut segment_writer = try!(SegmentWriter::for_segment(heap, segment, &schema));
|
||||
for doc in document_iterator {
|
||||
try!(segment_writer.add_document(&doc, &schema));
|
||||
if segment_writer.is_buffer_full() {
|
||||
@@ -159,7 +160,7 @@ fn index_documents(heap: &mut Heap,
|
||||
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());
|
||||
let mut segment_meta = SegmentMeta::new(segment_id);
|
||||
segment_meta.set_num_docs(num_docs);
|
||||
|
||||
let mut segment_entry = SegmentEntry::new(segment_meta);
|
||||
|
||||
@@ -54,7 +54,7 @@ impl FieldEntry {
|
||||
pub fn is_indexed(&self,) -> bool {
|
||||
match self.field_type {
|
||||
FieldType::Str(ref options) => options.get_indexing_options().is_indexed(),
|
||||
_ => false, // TODO handle u32 indexed
|
||||
FieldType::U32(ref options) => options.is_indexed(),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user