mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-26 03:55:07 +08:00
Use more efficient method for deletion in benchmarks
This commit is contained in:
parent
f8289cd974
commit
825257da76
@ -864,22 +864,12 @@ fn delete_documents_from_ids(index: Index, document_ids_to_delete: Vec<RoaringBi
|
|||||||
|
|
||||||
let indexer_config = IndexerConfig::default();
|
let indexer_config = IndexerConfig::default();
|
||||||
for ids in document_ids_to_delete {
|
for ids in document_ids_to_delete {
|
||||||
let external_documents_ids = index.external_documents_ids();
|
|
||||||
// FIXME: for filters matching a lot of documents, this will allocate a huge vec of external docids (strings).
|
|
||||||
// Since what we have is an iterator, it would be better to delete in chunks
|
|
||||||
let external_to_internal: std::result::Result<Vec<_>, RoaringBitmap> =
|
|
||||||
external_documents_ids
|
|
||||||
.find_external_id_of(&wtxn, ids)
|
|
||||||
.unwrap()
|
|
||||||
.only_external_ids()
|
|
||||||
.collect();
|
|
||||||
let ids = external_to_internal.unwrap();
|
|
||||||
let config = IndexDocumentsConfig::default();
|
let config = IndexDocumentsConfig::default();
|
||||||
|
|
||||||
let mut builder =
|
let mut builder =
|
||||||
IndexDocuments::new(&mut wtxn, &index, &indexer_config, config, |_| (), || false)
|
IndexDocuments::new(&mut wtxn, &index, &indexer_config, config, |_| (), || false)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
(builder, _) = builder.remove_documents(ids).unwrap();
|
(builder, _) = builder.remove_documents_from_db_no_batch(&ids).unwrap();
|
||||||
builder.execute().unwrap();
|
builder.execute().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user