use std::sync::Arc;
use crate::storage::engine::StorageEngine;
use crate::nodedb::core::types::NodeDbLite;
impl<S: StorageEngine> NodeDbLite<S> {
pub(in crate::nodedb::core::open) async fn restore_sparse_indices(
storage: &Arc<S>,
) -> (crate::engine::sparse_vector::SparseVectorManager, bool) {
let mut mgr = crate::engine::sparse_vector::SparseVectorManager::new();
match crate::engine::sparse_vector::checkpoint::restore_sparse(storage.as_ref()).await {
Ok(Some(indices)) => {
mgr.load_checkpoint(indices);
(mgr, true)
}
Ok(None) => (mgr, false),
Err(e) => {
tracing::error!(
error = %e,
"sparse vector checkpoint restore failed — rebuilding from source documents"
);
(mgr, false)
}
}
}
}