documents! macro accepts a single object again

This commit is contained in:
Louis Dureuil 2024-11-19 12:02:26 +01:00 committed by Clément Renault
parent 32d0e50a75
commit 1aef0e4037
No known key found for this signature in database
GPG Key ID: F250A4C4E3AE5F5F
2 changed files with 13 additions and 3 deletions

View File

@ -151,9 +151,18 @@ macro_rules! documents {
($data:tt) => {{
let documents = serde_json::json!($data);
let mut file = tempfile::tempfile().unwrap();
for document in documents.as_array().unwrap() {
match documents {
serde_json::Value::Array(vec) => {
for document in vec {
serde_json::to_writer(&mut file, &document).unwrap();
}
}
serde_json::Value::Object(document) => {
serde_json::to_writer(&mut file, &document).unwrap();
}
_ => unimplemented!("The `documents!` macro only support Objects and Array"),
}
file.sync_all().unwrap();
unsafe { memmap2::Mmap::map(&file).unwrap() }
}};

View File

@ -1749,7 +1749,8 @@ pub(crate) mod tests {
let db_fields_ids_map = self.inner.fields_ids_map(&rtxn)?;
let mut new_fields_ids_map = db_fields_ids_map.clone();
let embedders = EmbeddingConfigs::default(); /// TODO: fetch configs from the index
let embedders = EmbeddingConfigs::default();
/// TODO: fetch configs from the index
let mut indexer =
indexer::DocumentOperation::new(IndexDocumentsMethod::ReplaceDocuments);
indexer.add_documents(&documents).unwrap();