mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-09 22:48:54 +01:00
Add index exists function in index_scheduler
This commit is contained in:
parent
05cc2d1fac
commit
47e526f5ea
@ -662,7 +662,11 @@ impl IndexScheduler {
|
|||||||
let rtxn = self.env.read_txn()?;
|
let rtxn = self.env.read_txn()?;
|
||||||
self.index_mapper.index(&rtxn, name)
|
self.index_mapper.index(&rtxn, name)
|
||||||
}
|
}
|
||||||
|
/// Return the boolean referring if index exists.
|
||||||
|
pub fn index_exists(&self, name: &str) -> Result<bool> {
|
||||||
|
let rtxn = self.env.read_txn()?;
|
||||||
|
self.index_mapper.index_exists(&rtxn, name)
|
||||||
|
}
|
||||||
/// Return the name of all indexes without opening them.
|
/// Return the name of all indexes without opening them.
|
||||||
pub fn index_names(&self) -> Result<Vec<String>> {
|
pub fn index_names(&self) -> Result<Vec<String>> {
|
||||||
let rtxn = self.env.read_txn()?;
|
let rtxn = self.env.read_txn()?;
|
||||||
@ -3787,15 +3791,15 @@ mod tests {
|
|||||||
]);
|
]);
|
||||||
snapshot!(snapshot_index_scheduler(&index_scheduler), name: "after_processing_the_10_tasks");
|
snapshot!(snapshot_index_scheduler(&index_scheduler), name: "after_processing_the_10_tasks");
|
||||||
|
|
||||||
// The index should not exists.
|
// The index should not exist.
|
||||||
snapshot!(format!("{}", index_scheduler.index("doggos").map(|_| ()).unwrap_err()), @"Index `doggos` not found.");
|
snapshot!(matches!(index_scheduler.index_exists("doggos"), Ok(true)), @"false");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_document_addition_cant_create_index_without_index_without_autobatching() {
|
fn test_document_addition_cant_create_index_without_index_without_autobatching() {
|
||||||
// We're going to execute multiple document addition that don't have
|
// We're going to execute multiple document addition that don't have
|
||||||
// the right to create an index while there is no index currently.
|
// the right to create an index while there is no index currently.
|
||||||
// Since the autobatching is disabled, every tasks should be processed
|
// Since the auto-batching is disabled, every task should be processed
|
||||||
// sequentially and throw an IndexDoesNotExists.
|
// sequentially and throw an IndexDoesNotExists.
|
||||||
let (index_scheduler, mut handle) = IndexScheduler::test(false, vec![]);
|
let (index_scheduler, mut handle) = IndexScheduler::test(false, vec![]);
|
||||||
|
|
||||||
@ -3837,8 +3841,8 @@ mod tests {
|
|||||||
handle.advance_n_failed_batches(5);
|
handle.advance_n_failed_batches(5);
|
||||||
snapshot!(snapshot_index_scheduler(&index_scheduler), name: "all_tasks_processed");
|
snapshot!(snapshot_index_scheduler(&index_scheduler), name: "all_tasks_processed");
|
||||||
|
|
||||||
// The index should not exists.
|
// The index should not exist.
|
||||||
snapshot!(format!("{}", index_scheduler.index("doggos").map(|_| ()).unwrap_err()), @"Index `doggos` not found.");
|
snapshot!(matches!(index_scheduler.index_exists("doggos"), Ok(true)), @"false");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -102,7 +102,7 @@ pub trait Analytics: Sync + Send {
|
|||||||
/// This method should be called to aggregate post facet values searches
|
/// This method should be called to aggregate post facet values searches
|
||||||
fn post_facet_search(&self, aggregate: FacetSearchAggregator);
|
fn post_facet_search(&self, aggregate: FacetSearchAggregator);
|
||||||
|
|
||||||
// this method should be called to aggregate a add documents request
|
// this method should be called to aggregate an add documents request
|
||||||
fn add_documents(
|
fn add_documents(
|
||||||
&self,
|
&self,
|
||||||
documents_query: &UpdateDocumentsQuery,
|
documents_query: &UpdateDocumentsQuery,
|
||||||
|
@ -304,7 +304,11 @@ pub async fn replace_documents(
|
|||||||
debug!(parameters = ?params, "Replace documents");
|
debug!(parameters = ?params, "Replace documents");
|
||||||
let params = params.into_inner();
|
let params = params.into_inner();
|
||||||
|
|
||||||
analytics.add_documents(¶ms, index_scheduler.index(&index_uid).is_err(), &req);
|
analytics.add_documents(
|
||||||
|
¶ms,
|
||||||
|
!matches!(index_scheduler.index_exists(&index_uid), Ok(true)),
|
||||||
|
&req,
|
||||||
|
);
|
||||||
|
|
||||||
let allow_index_creation = index_scheduler.filters().allow_index_creation(&index_uid);
|
let allow_index_creation = index_scheduler.filters().allow_index_creation(&index_uid);
|
||||||
let uid = get_task_id(&req, &opt)?;
|
let uid = get_task_id(&req, &opt)?;
|
||||||
@ -341,7 +345,11 @@ pub async fn update_documents(
|
|||||||
let params = params.into_inner();
|
let params = params.into_inner();
|
||||||
debug!(parameters = ?params, "Update documents");
|
debug!(parameters = ?params, "Update documents");
|
||||||
|
|
||||||
analytics.update_documents(¶ms, index_scheduler.index(&index_uid).is_err(), &req);
|
analytics.update_documents(
|
||||||
|
¶ms,
|
||||||
|
!matches!(index_scheduler.index_exists(&index_uid), Ok(true)),
|
||||||
|
&req,
|
||||||
|
);
|
||||||
|
|
||||||
let allow_index_creation = index_scheduler.filters().allow_index_creation(&index_uid);
|
let allow_index_creation = index_scheduler.filters().allow_index_creation(&index_uid);
|
||||||
let uid = get_task_id(&req, &opt)?;
|
let uid = get_task_id(&req, &opt)?;
|
||||||
|
Loading…
Reference in New Issue
Block a user