mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-07-03 03:47:02 +02:00
rename DocumentChangeContext into DocumentContext
This commit is contained in:
parent
a685eeafeb
commit
77802dabf6
12 changed files with 38 additions and 40 deletions
|
@ -9,9 +9,7 @@ use crate::constants::RESERVED_GEO_FIELD_NAME;
|
||||||
use crate::update::new::channel::{DocumentsSender, ExtractorBbqueueSender};
|
use crate::update::new::channel::{DocumentsSender, ExtractorBbqueueSender};
|
||||||
use crate::update::new::document::{write_to_obkv, Document as _};
|
use crate::update::new::document::{write_to_obkv, Document as _};
|
||||||
use crate::update::new::document_change::DatabaseDocument;
|
use crate::update::new::document_change::DatabaseDocument;
|
||||||
use crate::update::new::indexer::document_changes::{
|
use crate::update::new::indexer::document_changes::{DocumentContext, Extractor, IndexingContext};
|
||||||
DocumentChangeContext, Extractor, IndexingContext,
|
|
||||||
};
|
|
||||||
use crate::update::new::indexer::settings_changes::{
|
use crate::update::new::indexer::settings_changes::{
|
||||||
settings_change_extract, DatabaseDocuments, SettingsChangeExtractor,
|
settings_change_extract, DatabaseDocuments, SettingsChangeExtractor,
|
||||||
};
|
};
|
||||||
|
@ -50,7 +48,7 @@ impl<'extractor> Extractor<'extractor> for DocumentsExtractor<'_, '_> {
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&self,
|
&self,
|
||||||
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
||||||
context: &DocumentChangeContext<Self::Data>,
|
context: &DocumentContext<Self::Data>,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let mut document_buffer = bumpalo::collections::Vec::new_in(&context.doc_alloc);
|
let mut document_buffer = bumpalo::collections::Vec::new_in(&context.doc_alloc);
|
||||||
let mut document_extractor_data = context.data.0.borrow_mut_or_yield();
|
let mut document_extractor_data = context.data.0.borrow_mut_or_yield();
|
||||||
|
@ -196,7 +194,7 @@ impl<'extractor> SettingsChangeExtractor<'extractor> for SettingsChangeDocumentE
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&self,
|
&self,
|
||||||
documents: impl Iterator<Item = Result<DatabaseDocument<'doc>>>,
|
documents: impl Iterator<Item = Result<DatabaseDocument<'doc>>>,
|
||||||
context: &DocumentChangeContext<Self::Data>,
|
context: &DocumentContext<Self::Data>,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let mut document_buffer = bumpalo::collections::Vec::new_in(&context.doc_alloc);
|
let mut document_buffer = bumpalo::collections::Vec::new_in(&context.doc_alloc);
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ use crate::update::del_add::DelAdd;
|
||||||
use crate::update::new::channel::FieldIdDocidFacetSender;
|
use crate::update::new::channel::FieldIdDocidFacetSender;
|
||||||
use crate::update::new::extract::perm_json_p;
|
use crate::update::new::extract::perm_json_p;
|
||||||
use crate::update::new::indexer::document_changes::{
|
use crate::update::new::indexer::document_changes::{
|
||||||
extract, DocumentChangeContext, DocumentChanges, Extractor, IndexingContext,
|
extract, DocumentContext, DocumentChanges, Extractor, IndexingContext,
|
||||||
};
|
};
|
||||||
use crate::update::new::ref_cell_ext::RefCellExt as _;
|
use crate::update::new::ref_cell_ext::RefCellExt as _;
|
||||||
use crate::update::new::steps::IndexingStep;
|
use crate::update::new::steps::IndexingStep;
|
||||||
|
@ -51,7 +51,7 @@ impl<'extractor> Extractor<'extractor> for FacetedExtractorData<'_, '_> {
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&self,
|
&self,
|
||||||
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
||||||
context: &DocumentChangeContext<Self::Data>,
|
context: &DocumentContext<Self::Data>,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
for change in changes {
|
for change in changes {
|
||||||
let change = change?;
|
let change = change?;
|
||||||
|
@ -75,7 +75,7 @@ pub struct FacetedDocidsExtractor;
|
||||||
impl FacetedDocidsExtractor {
|
impl FacetedDocidsExtractor {
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
fn extract_document_change(
|
fn extract_document_change(
|
||||||
context: &DocumentChangeContext<RefCell<BalancedCaches>>,
|
context: &DocumentContext<RefCell<BalancedCaches>>,
|
||||||
filterable_attributes: &[FilterableAttributesRule],
|
filterable_attributes: &[FilterableAttributesRule],
|
||||||
sortable_fields: &HashSet<String>,
|
sortable_fields: &HashSet<String>,
|
||||||
asc_desc_fields: &HashSet<String>,
|
asc_desc_fields: &HashSet<String>,
|
||||||
|
|
|
@ -11,7 +11,7 @@ use serde_json::Value;
|
||||||
|
|
||||||
use crate::error::GeoError;
|
use crate::error::GeoError;
|
||||||
use crate::update::new::document::Document;
|
use crate::update::new::document::Document;
|
||||||
use crate::update::new::indexer::document_changes::{DocumentChangeContext, Extractor};
|
use crate::update::new::indexer::document_changes::{DocumentContext, Extractor};
|
||||||
use crate::update::new::ref_cell_ext::RefCellExt as _;
|
use crate::update::new::ref_cell_ext::RefCellExt as _;
|
||||||
use crate::update::new::thread_local::MostlySend;
|
use crate::update::new::thread_local::MostlySend;
|
||||||
use crate::update::new::DocumentChange;
|
use crate::update::new::DocumentChange;
|
||||||
|
@ -150,7 +150,7 @@ impl<'extractor> Extractor<'extractor> for GeoExtractor {
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&'doc self,
|
&'doc self,
|
||||||
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
||||||
context: &'doc DocumentChangeContext<Self::Data>,
|
context: &'doc DocumentContext<Self::Data>,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let rtxn = &context.rtxn;
|
let rtxn = &context.rtxn;
|
||||||
let index = context.index;
|
let index = context.index;
|
||||||
|
|
|
@ -11,7 +11,7 @@ use super::tokenize_document::{tokenizer_builder, DocumentTokenizer};
|
||||||
use crate::update::new::extract::cache::BalancedCaches;
|
use crate::update::new::extract::cache::BalancedCaches;
|
||||||
use crate::update::new::extract::perm_json_p::contained_in;
|
use crate::update::new::extract::perm_json_p::contained_in;
|
||||||
use crate::update::new::indexer::document_changes::{
|
use crate::update::new::indexer::document_changes::{
|
||||||
extract, DocumentChangeContext, DocumentChanges, Extractor, IndexingContext,
|
extract, DocumentContext, DocumentChanges, Extractor, IndexingContext,
|
||||||
};
|
};
|
||||||
use crate::update::new::ref_cell_ext::RefCellExt as _;
|
use crate::update::new::ref_cell_ext::RefCellExt as _;
|
||||||
use crate::update::new::steps::IndexingStep;
|
use crate::update::new::steps::IndexingStep;
|
||||||
|
@ -226,7 +226,7 @@ impl<'extractor> Extractor<'extractor> for WordDocidsExtractorData<'_> {
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&self,
|
&self,
|
||||||
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
||||||
context: &DocumentChangeContext<Self::Data>,
|
context: &DocumentContext<Self::Data>,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
for change in changes {
|
for change in changes {
|
||||||
let change = change?;
|
let change = change?;
|
||||||
|
@ -305,7 +305,7 @@ impl WordDocidsExtractors {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn extract_document_change(
|
fn extract_document_change(
|
||||||
context: &DocumentChangeContext<RefCell<Option<WordDocidsBalancedCaches>>>,
|
context: &DocumentContext<RefCell<Option<WordDocidsBalancedCaches>>>,
|
||||||
document_tokenizer: &DocumentTokenizer,
|
document_tokenizer: &DocumentTokenizer,
|
||||||
searchable_attributes: Option<&[&str]>,
|
searchable_attributes: Option<&[&str]>,
|
||||||
document_change: DocumentChange,
|
document_change: DocumentChange,
|
||||||
|
|
|
@ -10,7 +10,7 @@ use crate::proximity::{index_proximity, MAX_DISTANCE};
|
||||||
use crate::update::new::document::Document;
|
use crate::update::new::document::Document;
|
||||||
use crate::update::new::extract::cache::BalancedCaches;
|
use crate::update::new::extract::cache::BalancedCaches;
|
||||||
use crate::update::new::indexer::document_changes::{
|
use crate::update::new::indexer::document_changes::{
|
||||||
extract, DocumentChangeContext, DocumentChanges, Extractor, IndexingContext,
|
extract, DocumentContext, DocumentChanges, Extractor, IndexingContext,
|
||||||
};
|
};
|
||||||
use crate::update::new::ref_cell_ext::RefCellExt as _;
|
use crate::update::new::ref_cell_ext::RefCellExt as _;
|
||||||
use crate::update::new::steps::IndexingStep;
|
use crate::update::new::steps::IndexingStep;
|
||||||
|
@ -39,7 +39,7 @@ impl<'extractor> Extractor<'extractor> for WordPairProximityDocidsExtractorData<
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&self,
|
&self,
|
||||||
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
||||||
context: &DocumentChangeContext<Self::Data>,
|
context: &DocumentContext<Self::Data>,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
for change in changes {
|
for change in changes {
|
||||||
let change = change?;
|
let change = change?;
|
||||||
|
@ -116,7 +116,7 @@ impl WordPairProximityDocidsExtractor {
|
||||||
// and to store the docids of the documents that have a number of words in a given field
|
// and to store the docids of the documents that have a number of words in a given field
|
||||||
// equal to or under than MAX_COUNTED_WORDS.
|
// equal to or under than MAX_COUNTED_WORDS.
|
||||||
fn extract_document_change(
|
fn extract_document_change(
|
||||||
context: &DocumentChangeContext<RefCell<BalancedCaches>>,
|
context: &DocumentContext<RefCell<BalancedCaches>>,
|
||||||
document_tokenizer: &DocumentTokenizer,
|
document_tokenizer: &DocumentTokenizer,
|
||||||
searchable_attributes: Option<&[&str]>,
|
searchable_attributes: Option<&[&str]>,
|
||||||
document_change: DocumentChange,
|
document_change: DocumentChange,
|
||||||
|
|
|
@ -11,7 +11,7 @@ use crate::progress::EmbedderStats;
|
||||||
use crate::prompt::Prompt;
|
use crate::prompt::Prompt;
|
||||||
use crate::update::new::channel::EmbeddingSender;
|
use crate::update::new::channel::EmbeddingSender;
|
||||||
use crate::update::new::document_change::DatabaseDocument;
|
use crate::update::new::document_change::DatabaseDocument;
|
||||||
use crate::update::new::indexer::document_changes::{DocumentChangeContext, Extractor};
|
use crate::update::new::indexer::document_changes::{DocumentContext, Extractor};
|
||||||
use crate::update::new::indexer::settings_changes::SettingsChangeExtractor;
|
use crate::update::new::indexer::settings_changes::SettingsChangeExtractor;
|
||||||
use crate::update::new::thread_local::MostlySend;
|
use crate::update::new::thread_local::MostlySend;
|
||||||
use crate::update::new::vector_document::VectorDocument;
|
use crate::update::new::vector_document::VectorDocument;
|
||||||
|
@ -60,7 +60,7 @@ impl<'extractor> Extractor<'extractor> for EmbeddingExtractor<'_, '_> {
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&'doc self,
|
&'doc self,
|
||||||
changes: impl Iterator<Item = crate::Result<DocumentChange<'doc>>>,
|
changes: impl Iterator<Item = crate::Result<DocumentChange<'doc>>>,
|
||||||
context: &'doc DocumentChangeContext<Self::Data>,
|
context: &'doc DocumentContext<Self::Data>,
|
||||||
) -> crate::Result<()> {
|
) -> crate::Result<()> {
|
||||||
let embedders = self.embedders.inner_as_ref();
|
let embedders = self.embedders.inner_as_ref();
|
||||||
let mut unused_vectors_distribution =
|
let mut unused_vectors_distribution =
|
||||||
|
@ -341,7 +341,7 @@ impl<'extractor> SettingsChangeExtractor<'extractor> for SettingsChangeEmbedding
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&'doc self,
|
&'doc self,
|
||||||
documents: impl Iterator<Item = crate::Result<DatabaseDocument<'doc>>>,
|
documents: impl Iterator<Item = crate::Result<DatabaseDocument<'doc>>>,
|
||||||
context: &'doc DocumentChangeContext<Self::Data>,
|
context: &'doc DocumentContext<Self::Data>,
|
||||||
) -> crate::Result<()> {
|
) -> crate::Result<()> {
|
||||||
let embedders = self.embedders.inner_as_ref();
|
let embedders = self.embedders.inner_as_ref();
|
||||||
let old_embedders = self.old_embedders.inner_as_ref();
|
let old_embedders = self.old_embedders.inner_as_ref();
|
||||||
|
|
|
@ -15,7 +15,7 @@ use crate::update::new::thread_local::{FullySend, MostlySend, ThreadLocal};
|
||||||
use crate::update::GrenadParameters;
|
use crate::update::GrenadParameters;
|
||||||
use crate::{FieldsIdsMap, GlobalFieldsIdsMap, Index, InternalError, Result};
|
use crate::{FieldsIdsMap, GlobalFieldsIdsMap, Index, InternalError, Result};
|
||||||
|
|
||||||
pub struct DocumentChangeContext<
|
pub struct DocumentContext<
|
||||||
'doc, // covariant lifetime of a single `process` call
|
'doc, // covariant lifetime of a single `process` call
|
||||||
'extractor: 'doc, // invariant lifetime of the extractor_allocs
|
'extractor: 'doc, // invariant lifetime of the extractor_allocs
|
||||||
'fid: 'doc, // invariant lifetime of the new_fields_ids_map
|
'fid: 'doc, // invariant lifetime of the new_fields_ids_map
|
||||||
|
@ -56,7 +56,7 @@ impl<
|
||||||
'fid: 'doc, // invariant lifetime of fields ids map
|
'fid: 'doc, // invariant lifetime of fields ids map
|
||||||
'indexer: 'doc, // covariant lifetime of objects that survive a `process` call
|
'indexer: 'doc, // covariant lifetime of objects that survive a `process` call
|
||||||
T: MostlySend,
|
T: MostlySend,
|
||||||
> DocumentChangeContext<'doc, 'extractor, 'fid, 'indexer, T>
|
> DocumentContext<'doc, 'extractor, 'fid, 'indexer, T>
|
||||||
{
|
{
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
pub fn new<F>(
|
pub fn new<F>(
|
||||||
|
@ -84,7 +84,7 @@ impl<
|
||||||
let data = datastore.get_or_try(move || init_data(&extractor_alloc.0))?;
|
let data = datastore.get_or_try(move || init_data(&extractor_alloc.0))?;
|
||||||
|
|
||||||
let txn = index.read_txn()?;
|
let txn = index.read_txn()?;
|
||||||
Ok(DocumentChangeContext {
|
Ok(DocumentContext {
|
||||||
index,
|
index,
|
||||||
rtxn: txn,
|
rtxn: txn,
|
||||||
db_fields_ids_map,
|
db_fields_ids_map,
|
||||||
|
@ -106,7 +106,7 @@ pub trait Extractor<'extractor>: Sync {
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&'doc self,
|
&'doc self,
|
||||||
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
changes: impl Iterator<Item = Result<DocumentChange<'doc>>>,
|
||||||
context: &'doc DocumentChangeContext<Self::Data>,
|
context: &'doc DocumentContext<Self::Data>,
|
||||||
) -> Result<()>;
|
) -> Result<()>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ pub trait DocumentChanges<'pl // lifetime of the underlying payload
|
||||||
fn item_to_document_change<'doc, // lifetime of a single `process` call
|
fn item_to_document_change<'doc, // lifetime of a single `process` call
|
||||||
T: MostlySend>(
|
T: MostlySend>(
|
||||||
&'doc self,
|
&'doc self,
|
||||||
context: &'doc DocumentChangeContext<T>,
|
context: &'doc DocumentContext<T>,
|
||||||
item: &'doc Self::Item,
|
item: &'doc Self::Item,
|
||||||
) -> Result<Option<DocumentChange<'doc>>> where 'pl: 'doc // the payload must survive the process calls
|
) -> Result<Option<DocumentChange<'doc>>> where 'pl: 'doc // the payload must survive the process calls
|
||||||
;
|
;
|
||||||
|
@ -224,7 +224,7 @@ where
|
||||||
let pi = document_changes.iter(CHUNK_SIZE);
|
let pi = document_changes.iter(CHUNK_SIZE);
|
||||||
pi.try_arc_for_each_try_init(
|
pi.try_arc_for_each_try_init(
|
||||||
|| {
|
|| {
|
||||||
DocumentChangeContext::new(
|
DocumentContext::new(
|
||||||
index,
|
index,
|
||||||
db_fields_ids_map,
|
db_fields_ids_map,
|
||||||
new_fields_ids_map,
|
new_fields_ids_map,
|
||||||
|
|
|
@ -4,7 +4,7 @@ use rayon::iter::IndexedParallelIterator;
|
||||||
use rayon::slice::ParallelSlice as _;
|
use rayon::slice::ParallelSlice as _;
|
||||||
use roaring::RoaringBitmap;
|
use roaring::RoaringBitmap;
|
||||||
|
|
||||||
use super::document_changes::{DocumentChangeContext, DocumentChanges};
|
use super::document_changes::{DocumentContext, DocumentChanges};
|
||||||
use crate::documents::PrimaryKey;
|
use crate::documents::PrimaryKey;
|
||||||
use crate::update::new::thread_local::MostlySend;
|
use crate::update::new::thread_local::MostlySend;
|
||||||
use crate::update::new::{DatabaseDocument, DocumentChange};
|
use crate::update::new::{DatabaseDocument, DocumentChange};
|
||||||
|
@ -58,7 +58,7 @@ impl<'pl> DocumentChanges<'pl> for DocumentDeletionChanges<'pl> {
|
||||||
T: MostlySend,
|
T: MostlySend,
|
||||||
>(
|
>(
|
||||||
&'doc self,
|
&'doc self,
|
||||||
context: &'doc DocumentChangeContext<T>,
|
context: &'doc DocumentContext<T>,
|
||||||
docid: &'doc Self::Item,
|
docid: &'doc Self::Item,
|
||||||
) -> Result<Option<DocumentChange<'doc>>>
|
) -> Result<Option<DocumentChange<'doc>>>
|
||||||
where
|
where
|
||||||
|
@ -94,7 +94,7 @@ mod test {
|
||||||
use crate::index::tests::TempIndex;
|
use crate::index::tests::TempIndex;
|
||||||
use crate::progress::Progress;
|
use crate::progress::Progress;
|
||||||
use crate::update::new::indexer::document_changes::{
|
use crate::update::new::indexer::document_changes::{
|
||||||
extract, DocumentChangeContext, Extractor, IndexingContext,
|
extract, DocumentContext, Extractor, IndexingContext,
|
||||||
};
|
};
|
||||||
use crate::update::new::indexer::DocumentDeletion;
|
use crate::update::new::indexer::DocumentDeletion;
|
||||||
use crate::update::new::steps::IndexingStep;
|
use crate::update::new::steps::IndexingStep;
|
||||||
|
@ -125,7 +125,7 @@ mod test {
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&self,
|
&self,
|
||||||
changes: impl Iterator<Item = crate::Result<DocumentChange<'doc>>>,
|
changes: impl Iterator<Item = crate::Result<DocumentChange<'doc>>>,
|
||||||
context: &DocumentChangeContext<Self::Data>,
|
context: &DocumentContext<Self::Data>,
|
||||||
) -> crate::Result<()> {
|
) -> crate::Result<()> {
|
||||||
for change in changes {
|
for change in changes {
|
||||||
let change = change?;
|
let change = change?;
|
||||||
|
|
|
@ -12,7 +12,7 @@ use serde_json::value::RawValue;
|
||||||
use serde_json::Deserializer;
|
use serde_json::Deserializer;
|
||||||
|
|
||||||
use super::super::document_change::DocumentChange;
|
use super::super::document_change::DocumentChange;
|
||||||
use super::document_changes::{DocumentChangeContext, DocumentChanges};
|
use super::document_changes::{DocumentContext, DocumentChanges};
|
||||||
use super::guess_primary_key::retrieve_or_guess_primary_key;
|
use super::guess_primary_key::retrieve_or_guess_primary_key;
|
||||||
use crate::documents::PrimaryKey;
|
use crate::documents::PrimaryKey;
|
||||||
use crate::progress::{AtomicPayloadStep, Progress};
|
use crate::progress::{AtomicPayloadStep, Progress};
|
||||||
|
@ -411,7 +411,7 @@ impl<'pl> DocumentChanges<'pl> for DocumentOperationChanges<'pl> {
|
||||||
|
|
||||||
fn item_to_document_change<'doc, T: MostlySend + 'doc>(
|
fn item_to_document_change<'doc, T: MostlySend + 'doc>(
|
||||||
&'doc self,
|
&'doc self,
|
||||||
context: &'doc DocumentChangeContext<T>,
|
context: &'doc DocumentContext<T>,
|
||||||
item: &'doc Self::Item,
|
item: &'doc Self::Item,
|
||||||
) -> Result<Option<DocumentChange<'doc>>>
|
) -> Result<Option<DocumentChange<'doc>>>
|
||||||
where
|
where
|
||||||
|
|
|
@ -5,7 +5,7 @@ use rayon::iter::IndexedParallelIterator;
|
||||||
use rustc_hash::FxBuildHasher;
|
use rustc_hash::FxBuildHasher;
|
||||||
use serde_json::value::RawValue;
|
use serde_json::value::RawValue;
|
||||||
|
|
||||||
use super::document_changes::{DocumentChangeContext, DocumentChanges};
|
use super::document_changes::{DocumentContext, DocumentChanges};
|
||||||
use crate::documents::PrimaryKey;
|
use crate::documents::PrimaryKey;
|
||||||
use crate::update::concurrent_available_ids::ConcurrentAvailableIds;
|
use crate::update::concurrent_available_ids::ConcurrentAvailableIds;
|
||||||
use crate::update::new::document::Versions;
|
use crate::update::new::document::Versions;
|
||||||
|
@ -55,7 +55,7 @@ where
|
||||||
|
|
||||||
fn item_to_document_change<'doc, T: MostlySend + 'doc>(
|
fn item_to_document_change<'doc, T: MostlySend + 'doc>(
|
||||||
&'doc self,
|
&'doc self,
|
||||||
context: &'doc DocumentChangeContext<T>,
|
context: &'doc DocumentContext<T>,
|
||||||
document: &'doc Self::Item,
|
document: &'doc Self::Item,
|
||||||
) -> Result<Option<DocumentChange<'doc>>>
|
) -> Result<Option<DocumentChange<'doc>>>
|
||||||
where
|
where
|
||||||
|
|
|
@ -9,7 +9,7 @@ use super::document_changes::IndexingContext;
|
||||||
use crate::documents::PrimaryKey;
|
use crate::documents::PrimaryKey;
|
||||||
use crate::progress::AtomicDocumentStep;
|
use crate::progress::AtomicDocumentStep;
|
||||||
use crate::update::new::document_change::DatabaseDocument;
|
use crate::update::new::document_change::DatabaseDocument;
|
||||||
use crate::update::new::indexer::document_changes::DocumentChangeContext;
|
use crate::update::new::indexer::document_changes::DocumentContext;
|
||||||
use crate::update::new::parallel_iterator_ext::ParallelIteratorExt as _;
|
use crate::update::new::parallel_iterator_ext::ParallelIteratorExt as _;
|
||||||
use crate::update::new::steps::IndexingStep;
|
use crate::update::new::steps::IndexingStep;
|
||||||
use crate::update::new::thread_local::{FullySend, MostlySend, ThreadLocal};
|
use crate::update::new::thread_local::{FullySend, MostlySend, ThreadLocal};
|
||||||
|
@ -24,7 +24,7 @@ pub trait SettingsChangeExtractor<'extractor>: Sync {
|
||||||
fn process<'doc>(
|
fn process<'doc>(
|
||||||
&'doc self,
|
&'doc self,
|
||||||
changes: impl Iterator<Item = Result<DatabaseDocument<'doc>>>,
|
changes: impl Iterator<Item = Result<DatabaseDocument<'doc>>>,
|
||||||
context: &'doc DocumentChangeContext<Self::Data>,
|
context: &'doc DocumentContext<Self::Data>,
|
||||||
) -> Result<()>;
|
) -> Result<()>;
|
||||||
}
|
}
|
||||||
pub struct DatabaseDocuments<'indexer> {
|
pub struct DatabaseDocuments<'indexer> {
|
||||||
|
@ -46,7 +46,7 @@ impl<'indexer> DatabaseDocuments<'indexer> {
|
||||||
T: MostlySend,
|
T: MostlySend,
|
||||||
>(
|
>(
|
||||||
&'doc self,
|
&'doc self,
|
||||||
context: &'doc DocumentChangeContext<T>,
|
context: &'doc DocumentContext<T>,
|
||||||
docid: &'doc DocumentId,
|
docid: &'doc DocumentId,
|
||||||
) -> Result<Option<DatabaseDocument<'doc>>> {
|
) -> Result<Option<DatabaseDocument<'doc>>> {
|
||||||
let current = context.index.document(&context.rtxn, *docid)?;
|
let current = context.index.document(&context.rtxn, *docid)?;
|
||||||
|
@ -109,7 +109,7 @@ pub fn settings_change_extract<
|
||||||
let pi = documents.iter(CHUNK_SIZE);
|
let pi = documents.iter(CHUNK_SIZE);
|
||||||
pi.try_arc_for_each_try_init(
|
pi.try_arc_for_each_try_init(
|
||||||
|| {
|
|| {
|
||||||
DocumentChangeContext::new(
|
DocumentContext::new(
|
||||||
index,
|
index,
|
||||||
db_fields_ids_map,
|
db_fields_ids_map,
|
||||||
new_fields_ids_map,
|
new_fields_ids_map,
|
||||||
|
|
|
@ -5,7 +5,7 @@ use rhai::{Dynamic, Engine, OptimizationLevel, Scope, AST};
|
||||||
use roaring::RoaringBitmap;
|
use roaring::RoaringBitmap;
|
||||||
use rustc_hash::FxBuildHasher;
|
use rustc_hash::FxBuildHasher;
|
||||||
|
|
||||||
use super::document_changes::DocumentChangeContext;
|
use super::document_changes::DocumentContext;
|
||||||
use super::DocumentChanges;
|
use super::DocumentChanges;
|
||||||
use crate::documents::Error::InvalidDocumentFormat;
|
use crate::documents::Error::InvalidDocumentFormat;
|
||||||
use crate::documents::PrimaryKey;
|
use crate::documents::PrimaryKey;
|
||||||
|
@ -86,13 +86,13 @@ impl<'index> DocumentChanges<'index> for UpdateByFunctionChanges<'index> {
|
||||||
|
|
||||||
fn item_to_document_change<'doc, T: MostlySend + 'doc>(
|
fn item_to_document_change<'doc, T: MostlySend + 'doc>(
|
||||||
&self,
|
&self,
|
||||||
context: &'doc DocumentChangeContext<T>,
|
context: &'doc DocumentContext<T>,
|
||||||
docid: &'doc Self::Item,
|
docid: &'doc Self::Item,
|
||||||
) -> Result<Option<DocumentChange<'doc>>>
|
) -> Result<Option<DocumentChange<'doc>>>
|
||||||
where
|
where
|
||||||
'index: 'doc,
|
'index: 'doc,
|
||||||
{
|
{
|
||||||
let DocumentChangeContext {
|
let DocumentContext {
|
||||||
index,
|
index,
|
||||||
db_fields_ids_map,
|
db_fields_ids_map,
|
||||||
rtxn: txn,
|
rtxn: txn,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue