mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-27 20:45:06 +08:00
34 lines
1019 B
Rust
34 lines
1019 B
Rust
|
use crate::Index;
|
||
|
|
||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||
|
pub enum IndexDocumentsMethod {
|
||
|
/// Replace the previous document with the new one,
|
||
|
/// removing all the already known attributes.
|
||
|
ReplaceDocuments,
|
||
|
|
||
|
/// Merge the previous version of the document with the new version,
|
||
|
/// replacing old attributes values with the new ones and add the new attributes.
|
||
|
UpdateDocuments,
|
||
|
}
|
||
|
|
||
|
pub struct IndexDocuments<'t, 'u, 'i> {
|
||
|
wtxn: &'t mut heed::RwTxn<'u>,
|
||
|
index: &'i Index,
|
||
|
update_method: IndexDocumentsMethod,
|
||
|
}
|
||
|
|
||
|
impl<'t, 'u, 'i> IndexDocuments<'t, 'u, 'i> {
|
||
|
pub fn new(wtxn: &'t mut heed::RwTxn<'u>, index: &'i Index) -> IndexDocuments<'t, 'u, 'i> {
|
||
|
IndexDocuments { wtxn, index, update_method: IndexDocumentsMethod::ReplaceDocuments }
|
||
|
}
|
||
|
|
||
|
pub fn index_documents_method(&mut self, method: IndexDocumentsMethod) -> &mut Self {
|
||
|
self.update_method = method;
|
||
|
self
|
||
|
}
|
||
|
|
||
|
pub fn execute(self) -> anyhow::Result<()> {
|
||
|
todo!()
|
||
|
}
|
||
|
}
|