Simplify the IndexDocuments builder creation from the UpdateBuilder

This commit is contained in:
Clément Renault 2020-11-01 14:55:06 +01:00
parent d8ff939409
commit 0ccf4cf785
No known key found for this signature in database
GPG Key ID: 92ADA4E935E71FA4
2 changed files with 28 additions and 96 deletions

View File

@ -194,14 +194,14 @@ pub enum UpdateFormat {
pub struct IndexDocuments<'t, 'u, 'i> {
wtxn: &'t mut heed::RwTxn<'i, 'u>,
index: &'i Index,
log_every_n: Option<usize>,
max_nb_chunks: Option<usize>,
max_memory: Option<usize>,
linked_hash_map_size: Option<usize>,
chunk_compression_type: CompressionType,
chunk_compression_level: Option<u32>,
chunk_fusing_shrink_size: Option<u64>,
indexing_jobs: Option<usize>,
pub(crate) log_every_n: Option<usize>,
pub(crate) max_nb_chunks: Option<usize>,
pub(crate) max_memory: Option<usize>,
pub(crate) linked_hash_map_size: Option<usize>,
pub(crate) chunk_compression_type: CompressionType,
pub(crate) chunk_compression_level: Option<u32>,
pub(crate) chunk_fusing_shrink_size: Option<u64>,
pub(crate) indexing_jobs: Option<usize>,
update_method: IndexDocumentsMethod,
update_format: UpdateFormat,
autogenerate_docids: bool,
@ -226,64 +226,20 @@ impl<'t, 'u, 'i> IndexDocuments<'t, 'u, 'i> {
}
}
pub(crate) fn log_every_n(&mut self, log_every_n: usize) -> &mut Self {
self.log_every_n = Some(log_every_n);
self
}
pub(crate) fn max_nb_chunks(&mut self, max_nb_chunks: usize) -> &mut Self {
self.max_nb_chunks = Some(max_nb_chunks);
self
}
pub(crate) fn max_memory(&mut self, max_memory: usize) -> &mut Self {
self.max_memory = Some(max_memory);
self
}
pub(crate) fn linked_hash_map_size(&mut self, linked_hash_map_size: usize) -> &mut Self {
self.linked_hash_map_size = Some(linked_hash_map_size);
self
}
pub(crate) fn chunk_compression_type(&mut self, chunk_compression_type: CompressionType) -> &mut Self {
self.chunk_compression_type = chunk_compression_type;
self
}
pub(crate) fn chunk_compression_level(&mut self, chunk_compression_level: u32) -> &mut Self {
self.chunk_compression_level = Some(chunk_compression_level);
self
}
pub(crate) fn chunk_fusing_shrink_size(&mut self, chunk_fusing_shrink_size: u64) -> &mut Self {
self.chunk_fusing_shrink_size = Some(chunk_fusing_shrink_size);
self
}
pub(crate) fn indexing_jobs(&mut self, indexing_jobs: usize) -> &mut Self {
self.indexing_jobs = Some(indexing_jobs);
self
}
pub fn index_documents_method(&mut self, method: IndexDocumentsMethod) -> &mut Self {
pub fn index_documents_method(&mut self, method: IndexDocumentsMethod) {
self.update_method = method;
self
}
pub fn update_format(&mut self, format: UpdateFormat) -> &mut Self {
pub fn update_format(&mut self, format: UpdateFormat) {
self.update_format = format;
self
}
pub fn enable_autogenerate_docids(&mut self) -> &mut Self {
pub fn enable_autogenerate_docids(&mut self) {
self.autogenerate_docids = true;
self
}
pub fn disable_autogenerate_docids(&mut self) -> &mut Self {
pub fn disable_autogenerate_docids(&mut self) {
self.autogenerate_docids = false;
self
}
pub fn execute<R, F>(self, reader: R, progress_callback: F) -> anyhow::Result<()>

View File

@ -30,44 +30,36 @@ impl UpdateBuilder {
}
}
pub fn log_every_n(&mut self, log_every_n: usize) -> &mut Self {
pub fn log_every_n(&mut self, log_every_n: usize) {
self.log_every_n = Some(log_every_n);
self
}
pub fn max_nb_chunks(&mut self, max_nb_chunks: usize) -> &mut Self {
pub fn max_nb_chunks(&mut self, max_nb_chunks: usize) {
self.max_nb_chunks = Some(max_nb_chunks);
self
}
pub fn max_memory(&mut self, max_memory: usize) -> &mut Self {
pub fn max_memory(&mut self, max_memory: usize) {
self.max_memory = Some(max_memory);
self
}
pub fn linked_hash_map_size(&mut self, linked_hash_map_size: usize) -> &mut Self {
pub fn linked_hash_map_size(&mut self, linked_hash_map_size: usize) {
self.linked_hash_map_size = Some(linked_hash_map_size);
self
}
pub fn chunk_compression_type(&mut self, chunk_compression_type: CompressionType) -> &mut Self {
pub fn chunk_compression_type(&mut self, chunk_compression_type: CompressionType) {
self.chunk_compression_type = chunk_compression_type;
self
}
pub fn chunk_compression_level(&mut self, chunk_compression_level: u32) -> &mut Self {
pub fn chunk_compression_level(&mut self, chunk_compression_level: u32) {
self.chunk_compression_level = Some(chunk_compression_level);
self
}
pub fn chunk_fusing_shrink_size(&mut self, chunk_fusing_shrink_size: u64) -> &mut Self {
pub fn chunk_fusing_shrink_size(&mut self, chunk_fusing_shrink_size: u64) {
self.chunk_fusing_shrink_size = Some(chunk_fusing_shrink_size);
self
}
pub fn indexing_jobs(&mut self, indexing_jobs: usize) -> &mut Self {
pub fn indexing_jobs(&mut self, indexing_jobs: usize) {
self.indexing_jobs = Some(indexing_jobs);
self
}
pub fn clear_documents<'t, 'u, 'i>(
@ -96,30 +88,14 @@ impl UpdateBuilder {
{
let mut builder = IndexDocuments::new(wtxn, index);
if let Some(log_every_n) = self.log_every_n {
builder.log_every_n(log_every_n);
}
if let Some(max_nb_chunks) = self.max_nb_chunks {
builder.max_nb_chunks(max_nb_chunks);
}
if let Some(max_memory) = self.max_memory {
builder.max_memory(max_memory);
}
if let Some(linked_hash_map_size) = self.linked_hash_map_size {
builder.linked_hash_map_size(linked_hash_map_size);
}
builder.chunk_compression_type(self.chunk_compression_type);
if let Some(chunk_compression_level) = self.chunk_compression_level {
builder.chunk_compression_level(chunk_compression_level);
}
if let Some(chunk_fusing_shrink_size) = self.chunk_fusing_shrink_size {
builder.chunk_fusing_shrink_size(chunk_fusing_shrink_size);
}
if let Some(indexing_jobs) = self.indexing_jobs {
builder.indexing_jobs(indexing_jobs);
}
builder.log_every_n = self.log_every_n;
builder.max_nb_chunks = self.max_nb_chunks;
builder.max_memory = self.max_memory;
builder.linked_hash_map_size = self.linked_hash_map_size;
builder.chunk_compression_type = self.chunk_compression_type;
builder.chunk_compression_level = self.chunk_compression_level;
builder.chunk_fusing_shrink_size = self.chunk_fusing_shrink_size;
builder.indexing_jobs = self.indexing_jobs;
builder
}