Fix setup_search_index_with_criteria

This commit is contained in:
Louis Dureuil 2024-11-19 16:49:00 +01:00 committed by Clément Renault
parent fc14f4bc66
commit a28d4f5d0c
No known key found for this signature in database
GPG Key ID: F250A4C4E3AE5F5F
2 changed files with 10 additions and 4 deletions

View File

@ -46,8 +46,8 @@ pub fn setup_search_index_with_criteria(criteria: &[Criterion]) -> Index {
// index documents
let config = IndexerConfig { max_memory: Some(10 * 1024 * 1024), ..Default::default() };
let mut wtxn = index.write_txn().unwrap();
let rtxn = index.read_txn().unwrap();
let mut wtxn = index.write_txn().unwrap();
let db_fields_ids_map = index.fields_ids_map(&rtxn).unwrap();
let mut new_fields_ids_map = db_fields_ids_map.clone();

View File

@ -36,7 +36,6 @@ pub fn setup_search_index_with_criteria(criteria: &[Criterion]) -> Index {
let index = Index::new(options, &path).unwrap();
let mut wtxn = index.write_txn().unwrap();
let rtxn = index.read_txn().unwrap();
let config = IndexerConfig::default();
let mut builder = Settings::new(&mut wtxn, &index, &config);
@ -61,9 +60,13 @@ pub fn setup_search_index_with_criteria(criteria: &[Criterion]) -> Index {
});
builder.set_searchable_fields(vec![S("title"), S("description")]);
builder.execute(|_| (), || false).unwrap();
wtxn.commit().unwrap();
// index documents
let config = IndexerConfig { max_memory: Some(10 * 1024 * 1024), ..Default::default() };
let rtxn = index.read_txn().unwrap();
let mut wtxn = index.write_txn().unwrap();
let db_fields_ids_map = index.fields_ids_map(&rtxn).unwrap();
let mut new_fields_ids_map = db_fields_ids_map.clone();
@ -73,16 +76,19 @@ pub fn setup_search_index_with_criteria(criteria: &[Criterion]) -> Index {
let mut file = tempfile::tempfile().unwrap();
file.write_all(CONTENT.as_bytes()).unwrap();
file.sync_all().unwrap();
let payload = unsafe { memmap2::Mmap::map(&file).unwrap() };
// index documents
indexer.add_documents(&payload).unwrap();
let indexer_alloc = Bump::new();
let (document_changes, _operation_stats, primary_key) =
let (document_changes, operation_stats, primary_key) =
indexer.into_changes(&indexer_alloc, &index, &rtxn, None, &mut new_fields_ids_map).unwrap();
if let Some(error) = operation_stats.into_iter().find_map(|stat| stat.error) {
panic!("{error}");
}
indexer::index(
&mut wtxn,
&index,