mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-07-04 04:17:10 +02:00
Send owned metadata and clear inputs in case of error
This commit is contained in:
parent
3740755d9c
commit
735634e998
3 changed files with 12 additions and 5 deletions
|
@ -1259,7 +1259,7 @@ impl<'doc> OnEmbed<'doc> for WriteGrenadOnEmbed<'_> {
|
||||||
error: crate::vector::error::EmbedError,
|
error: crate::vector::error::EmbedError,
|
||||||
embedder_name: &'doc str,
|
embedder_name: &'doc str,
|
||||||
unused_vectors_distribution: &crate::vector::error::UnusedVectorsDistribution,
|
unused_vectors_distribution: &crate::vector::error::UnusedVectorsDistribution,
|
||||||
_metadata: &[crate::vector::session::Metadata<'doc>],
|
_metadata: bumpalo::collections::Vec<'doc, crate::vector::session::Metadata<'doc>>,
|
||||||
) -> crate::Error {
|
) -> crate::Error {
|
||||||
if let FaultSource::Bug = error.fault {
|
if let FaultSource::Bug = error.fault {
|
||||||
crate::Error::InternalError(crate::InternalError::VectorEmbeddingError(error.into()))
|
crate::Error::InternalError(crate::InternalError::VectorEmbeddingError(error.into()))
|
||||||
|
|
|
@ -478,7 +478,7 @@ impl<'doc> OnEmbed<'doc> for OnEmbeddingDocumentUpdates<'doc, '_> {
|
||||||
error: crate::vector::hf::EmbedError,
|
error: crate::vector::hf::EmbedError,
|
||||||
embedder_name: &'doc str,
|
embedder_name: &'doc str,
|
||||||
unused_vectors_distribution: &UnusedVectorsDistributionBump,
|
unused_vectors_distribution: &UnusedVectorsDistributionBump,
|
||||||
metadata: &[Metadata<'doc>],
|
metadata: BVec<'doc, Metadata<'doc>>,
|
||||||
) -> crate::Error {
|
) -> crate::Error {
|
||||||
if let FaultSource::Bug = error.fault {
|
if let FaultSource::Bug = error.fault {
|
||||||
crate::Error::InternalError(crate::InternalError::VectorEmbeddingError(error.into()))
|
crate::Error::InternalError(crate::InternalError::VectorEmbeddingError(error.into()))
|
||||||
|
|
|
@ -28,7 +28,7 @@ pub trait OnEmbed<'doc> {
|
||||||
error: EmbedError,
|
error: EmbedError,
|
||||||
embedder_name: &'doc str,
|
embedder_name: &'doc str,
|
||||||
unused_vectors_distribution: &Self::ErrorMetadata,
|
unused_vectors_distribution: &Self::ErrorMetadata,
|
||||||
metadata: &[Metadata<'doc>],
|
metadata: BVec<'doc, Metadata<'doc>>,
|
||||||
) -> crate::Error;
|
) -> crate::Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,12 +143,19 @@ impl<'doc, C: OnEmbed<'doc>, I: Input> EmbedSession<'doc, C, I> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
|
// reset metadata and inputs, and send metadata to the error processing.
|
||||||
|
let doc_alloc = self.metadata.bump();
|
||||||
|
let metadata = std::mem::replace(
|
||||||
|
&mut self.metadata,
|
||||||
|
BVec::with_capacity_in(self.inputs.capacity(), doc_alloc),
|
||||||
|
);
|
||||||
|
self.inputs.clear();
|
||||||
return Err(self.on_embed.process_embedding_error(
|
return Err(self.on_embed.process_embedding_error(
|
||||||
error,
|
error,
|
||||||
self.embedder_name,
|
self.embedder_name,
|
||||||
unused_vectors_distribution,
|
unused_vectors_distribution,
|
||||||
&self.metadata,
|
metadata,
|
||||||
))
|
));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
self.inputs.clear();
|
self.inputs.clear();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue