mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-09-24 13:46:26 +00:00
Add debugs
This commit is contained in:
@ -21,11 +21,15 @@ use super::ref_cell_ext::RefCellExt;
|
|||||||
use super::thread_local::{FullySend, ThreadLocal};
|
use super::thread_local::{FullySend, ThreadLocal};
|
||||||
use super::StdResult;
|
use super::StdResult;
|
||||||
use crate::heed_codec::facet::{FieldDocIdFacetF64Codec, FieldDocIdFacetStringCodec};
|
use crate::heed_codec::facet::{FieldDocIdFacetF64Codec, FieldDocIdFacetStringCodec};
|
||||||
|
use crate::heed_codec::StrBEU16Codec;
|
||||||
use crate::index::db_name;
|
use crate::index::db_name;
|
||||||
use crate::index::main_key::{GEO_FACETED_DOCUMENTS_IDS_KEY, GEO_RTREE_KEY};
|
use crate::index::main_key::{GEO_FACETED_DOCUMENTS_IDS_KEY, GEO_RTREE_KEY};
|
||||||
use crate::update::new::KvReaderFieldId;
|
use crate::update::new::KvReaderFieldId;
|
||||||
use crate::vector::Embedding;
|
use crate::vector::Embedding;
|
||||||
use crate::{CboRoaringBitmapCodec, DocumentId, Error, Index, InternalError};
|
use crate::{
|
||||||
|
CboRoaringBitmapCodec, DocumentId, Error, FieldIdWordCountCodec, Index, InternalError,
|
||||||
|
U8StrStrCodec,
|
||||||
|
};
|
||||||
|
|
||||||
/// Creates a tuple of senders/receiver to be used by
|
/// Creates a tuple of senders/receiver to be used by
|
||||||
/// the extractors and the writer loop.
|
/// the extractors and the writer loop.
|
||||||
@ -403,6 +407,32 @@ impl Database {
|
|||||||
Database::FieldIdDocidFacetF64s => db_name::FIELD_ID_DOCID_FACET_F64S,
|
Database::FieldIdDocidFacetF64s => db_name::FIELD_ID_DOCID_FACET_F64S,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn stringify_key(&self, key: &[u8]) -> String {
|
||||||
|
use heed::types::*;
|
||||||
|
|
||||||
|
match self {
|
||||||
|
Database::WordDocids => format!("{:?}", Str::bytes_decode(key).unwrap()),
|
||||||
|
Database::WordFidDocids => format!("{:?}", StrBEU16Codec::bytes_decode(key).unwrap()),
|
||||||
|
Database::WordPositionDocids => {
|
||||||
|
format!("{:?}", StrBEU16Codec::bytes_decode(key).unwrap())
|
||||||
|
}
|
||||||
|
Database::WordPairProximityDocids => {
|
||||||
|
format!("{:?}", U8StrStrCodec::bytes_decode(key).unwrap())
|
||||||
|
}
|
||||||
|
Database::ExactWordDocids => format!("{:?}", Str::bytes_decode(key).unwrap()),
|
||||||
|
Database::FidWordCountDocids => {
|
||||||
|
format!("{:?}", FieldIdWordCountCodec::bytes_decode(key).unwrap())
|
||||||
|
}
|
||||||
|
Database::FieldIdDocidFacetStrings => {
|
||||||
|
format!("{:?}", FieldDocIdFacetStringCodec::bytes_decode(key).unwrap())
|
||||||
|
}
|
||||||
|
Database::FieldIdDocidFacetF64s => {
|
||||||
|
format!("{:?}", FieldDocIdFacetF64Codec::bytes_decode(key).unwrap())
|
||||||
|
}
|
||||||
|
d => unimplemented!("stringify_key for {:?}", d),
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<FacetKind> for Database {
|
impl From<FacetKind> for Database {
|
||||||
|
@ -80,16 +80,35 @@ where
|
|||||||
}
|
}
|
||||||
merge_caches_sorted(frozen, |key, DelAddRoaringBitmap { del, add }| {
|
merge_caches_sorted(frozen, |key, DelAddRoaringBitmap { del, add }| {
|
||||||
let current = database.get(&rtxn, key)?;
|
let current = database.get(&rtxn, key)?;
|
||||||
match merge_cbo_bitmaps(current, del, add)? {
|
|
||||||
Operation::Write(bitmap) => {
|
if let (Some(del), Some(current)) = (&del, ¤t) {
|
||||||
|
let current = CboRoaringBitmapCodec::deserialize_from(current).unwrap();
|
||||||
|
let diff = del - ¤t;
|
||||||
|
let external_ids = index.external_id_of(&rtxn, &diff).unwrap().into_iter().map(|id| id.unwrap()).collect::<Vec<_>>();
|
||||||
|
if !del.is_subset(¤t) {
|
||||||
|
eprintln!(
|
||||||
|
"======================== {:?}: {} -> c: {:?} d: {:?} a: {:?} extra: {:?} extra_external_ids: {:?}",
|
||||||
|
D::DATABASE,
|
||||||
|
D::DATABASE.stringify_key(key),
|
||||||
|
¤t,
|
||||||
|
del,
|
||||||
|
add,
|
||||||
|
diff,
|
||||||
|
external_ids
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
match merge_cbo_bitmaps(current, del, add) {
|
||||||
|
Ok(Operation::Write(bitmap)) => {
|
||||||
docids_sender.write(key, &bitmap)?;
|
docids_sender.write(key, &bitmap)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Operation::Delete => {
|
Ok(Operation::Delete) => {
|
||||||
docids_sender.delete(key)?;
|
docids_sender.delete(key)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
Operation::Ignore => Ok(()),
|
Ok(Operation::Ignore) => Ok(()),
|
||||||
|
Err(e) => Err(e),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user