mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-30 00:34:26 +01:00
feat: Introduce the updated_documents methods
This commit is contained in:
parent
264fffa826
commit
a0c4ec0be0
@ -21,6 +21,8 @@ use crate::shared_data_cursor::FromSharedDataCursor;
|
|||||||
use crate::write_to_bytes::WriteToBytes;
|
use crate::write_to_bytes::WriteToBytes;
|
||||||
use crate::DocumentId;
|
use crate::DocumentId;
|
||||||
|
|
||||||
|
use self::update::{ReadIndexEvent, ReadRankedMapEvent};
|
||||||
|
|
||||||
pub use self::document_key::{DocumentKey, DocumentKeyAttr};
|
pub use self::document_key::{DocumentKey, DocumentKeyAttr};
|
||||||
pub use self::view::{DatabaseView, DocumentIter};
|
pub use self::view::{DatabaseView, DocumentIter};
|
||||||
pub use self::update::Update;
|
pub use self::update::Update;
|
||||||
@ -55,8 +57,6 @@ where D: Deref<Target=DB>
|
|||||||
fn retrieve_data_index<D>(snapshot: &Snapshot<D>) -> Result<Index, Box<Error>>
|
fn retrieve_data_index<D>(snapshot: &Snapshot<D>) -> Result<Index, Box<Error>>
|
||||||
where D: Deref<Target=DB>
|
where D: Deref<Target=DB>
|
||||||
{
|
{
|
||||||
use self::update::ReadIndexEvent::{self, *};
|
|
||||||
|
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
let vector = snapshot.get(DATA_INDEX)?;
|
let vector = snapshot.get(DATA_INDEX)?;
|
||||||
info!("loading index from kv-store took {:.2?}", start.elapsed());
|
info!("loading index from kv-store took {:.2?}", start.elapsed());
|
||||||
@ -68,10 +68,8 @@ where D: Deref<Target=DB>
|
|||||||
let bytes = vector.as_ref().to_vec();
|
let bytes = vector.as_ref().to_vec();
|
||||||
info!("index size is {}B", SizeFormatterBinary::new(bytes.len() as u64));
|
info!("index size is {}B", SizeFormatterBinary::new(bytes.len() as u64));
|
||||||
|
|
||||||
let index = match ReadIndexEvent::from_bytes(bytes)? {
|
let event = ReadIndexEvent::from_bytes(bytes)?;
|
||||||
RemovedDocuments(_) => panic!("BUG: RemovedDocument event retrieved"),
|
let index = event.updated_documents().expect("BUG: invalid event deserialized");
|
||||||
UpdatedDocuments(index) => index,
|
|
||||||
};
|
|
||||||
|
|
||||||
info!("loading index from bytes took {:.2?}", start.elapsed());
|
info!("loading index from bytes took {:.2?}", start.elapsed());
|
||||||
|
|
||||||
@ -84,8 +82,6 @@ where D: Deref<Target=DB>
|
|||||||
fn retrieve_data_ranked_map<D>(snapshot: &Snapshot<D>) -> Result<RankedMap, Box<Error>>
|
fn retrieve_data_ranked_map<D>(snapshot: &Snapshot<D>) -> Result<RankedMap, Box<Error>>
|
||||||
where D: Deref<Target=DB>,
|
where D: Deref<Target=DB>,
|
||||||
{
|
{
|
||||||
use self::update::ReadRankedMapEvent::{self, *};
|
|
||||||
|
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
let vector = snapshot.get(DATA_RANKED_MAP)?;
|
let vector = snapshot.get(DATA_RANKED_MAP)?;
|
||||||
info!("loading ranked map from kv-store took {:.2?}", start.elapsed());
|
info!("loading ranked map from kv-store took {:.2?}", start.elapsed());
|
||||||
@ -97,10 +93,8 @@ where D: Deref<Target=DB>,
|
|||||||
let bytes = vector.as_ref().to_vec();
|
let bytes = vector.as_ref().to_vec();
|
||||||
info!("ranked map size is {}B", SizeFormatterBinary::new(bytes.len() as u64));
|
info!("ranked map size is {}B", SizeFormatterBinary::new(bytes.len() as u64));
|
||||||
|
|
||||||
let ranked_map = match ReadRankedMapEvent::from_bytes(bytes)? {
|
let event = ReadRankedMapEvent::from_bytes(bytes)?;
|
||||||
RemovedDocuments(_) => panic!("BUG: RemovedDocument event retrieved"),
|
let ranked_map = event.updated_documents().expect("BUG: invalid event deserialized");
|
||||||
UpdatedDocuments(ranked_map) => ranked_map,
|
|
||||||
};
|
|
||||||
|
|
||||||
info!("loading ranked map from bytes took {:.2?}", start.elapsed());
|
info!("loading ranked map from bytes took {:.2?}", start.elapsed());
|
||||||
|
|
||||||
|
@ -32,6 +32,16 @@ pub enum ReadIndexEvent {
|
|||||||
UpdatedDocuments(Index),
|
UpdatedDocuments(Index),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl ReadIndexEvent {
|
||||||
|
pub fn updated_documents(self) -> Option<Index> {
|
||||||
|
use ReadIndexEvent::*;
|
||||||
|
match self {
|
||||||
|
RemovedDocuments(_) => None,
|
||||||
|
UpdatedDocuments(index) => Some(index),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl FromSharedDataCursor for ReadIndexEvent {
|
impl FromSharedDataCursor for ReadIndexEvent {
|
||||||
type Error = Box<Error>;
|
type Error = Box<Error>;
|
||||||
|
|
||||||
|
@ -32,6 +32,16 @@ pub enum ReadRankedMapEvent {
|
|||||||
UpdatedDocuments(RankedMap),
|
UpdatedDocuments(RankedMap),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl ReadRankedMapEvent {
|
||||||
|
pub fn updated_documents(self) -> Option<RankedMap> {
|
||||||
|
use ReadRankedMapEvent::*;
|
||||||
|
match self {
|
||||||
|
RemovedDocuments(_) => None,
|
||||||
|
UpdatedDocuments(ranked_map) => Some(ranked_map),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl FromSharedDataCursor for ReadRankedMapEvent {
|
impl FromSharedDataCursor for ReadRankedMapEvent {
|
||||||
type Error = Box<Error>;
|
type Error = Box<Error>;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user