get rids of the index crate + the document_types crate

This commit is contained in:
Tamo 2022-10-11 17:42:43 +02:00 committed by Clément Renault
parent f3ec39a769
commit f456fb5e0b
No known key found for this signature in database
GPG key ID: 92ADA4E935E71FA4
30 changed files with 316 additions and 2207 deletions

View file

@ -11,10 +11,7 @@ bincode = "1.3.3"
csv = "1.1.6"
file-store = { path = "../file-store" }
log = "0.4.14"
milli = { git = "https://github.com/meilisearch/milli.git", tag = "v0.33.0" }
index = { path = "../index" }
meilisearch-types = { path = "../meilisearch-types" }
document-formats = { path = "../document-formats" }
roaring = "0.9.0"
serde = { version = "1.0.136", features = ["derive"] }
serde_json = { version = "1.0.85", features = ["preserve_order"] }

View file

@ -1,4 +1,6 @@
use milli::update::IndexDocumentsMethod::{self, ReplaceDocuments, UpdateDocuments};
use meilisearch_types::milli::update::IndexDocumentsMethod::{
self, ReplaceDocuments, UpdateDocuments,
};
use std::ops::ControlFlow::{self, Break, Continue};
use crate::{task::Kind, TaskId};

View file

@ -3,14 +3,19 @@ use crate::{
task::{Details, Kind, KindWithContent, Status, Task},
Error, IndexScheduler, Result, TaskId,
};
use index::apply_settings_to_builder;
use index::error::IndexError;
use index::{Settings, Unchecked};
use log::{debug, info};
use milli::heed::{RoTxn, RwTxn};
use milli::update::IndexDocumentsConfig;
use milli::update::{DocumentAdditionResult, DocumentDeletionResult, IndexDocumentsMethod};
use milli::{documents::DocumentsBatchReader, BEU32};
use meilisearch_types::milli::update::IndexDocumentsConfig;
use meilisearch_types::milli::update::{
DocumentAdditionResult, DocumentDeletionResult, IndexDocumentsMethod,
};
use meilisearch_types::milli::{
self, documents::DocumentsBatchReader, update::Settings as MilliSettings, BEU32,
};
use meilisearch_types::settings::{apply_settings_to_builder, Settings, Unchecked};
use meilisearch_types::{
heed::{RoTxn, RwTxn},
Index,
};
use roaring::RoaringBitmap;
use uuid::Uuid;
@ -527,7 +532,7 @@ impl IndexScheduler {
if let Some(primary_key) = primary_key.clone() {
let mut index_wtxn = index.write_txn()?;
let mut builder = milli::update::Settings::new(
let mut builder = MilliSettings::new(
&mut index_wtxn,
&index,
self.index_mapper.indexer_config(),
@ -576,7 +581,7 @@ impl IndexScheduler {
fn apply_index_operation<'txn, 'i>(
&self,
index_wtxn: &'txn mut RwTxn<'i, '_>,
index: &'i milli::Index,
index: &'i Index,
operation: IndexOperation,
) -> Result<Vec<Task>> {
match operation {
@ -639,7 +644,7 @@ impl IndexScheduler {
for content_uuid in content_files.into_iter() {
let content_file = self.file_store.get_update(content_uuid)?;
let reader = DocumentsBatchReader::from_reader(content_file)
.map_err(IndexError::from)?;
.map_err(milli::Error::from)?;
let (new_builder, user_result) = builder.add_documents(reader)?;
builder = new_builder;
@ -648,7 +653,7 @@ impl IndexScheduler {
indexed_documents: count,
number_of_documents: count,
}),
Err(e) => Err(IndexError::from(e)),
Err(e) => Err(milli::Error::from(e)),
};
results.push(user_result);

View file

@ -1,5 +1,6 @@
use meilisearch_types::error::{Code, ErrorCode};
use milli::heed;
use meilisearch_types::heed;
use meilisearch_types::milli;
use thiserror::Error;
use crate::TaskId;
@ -26,8 +27,6 @@ pub enum Error {
#[error(transparent)]
Milli(#[from] milli::Error),
#[error(transparent)]
IndexError(#[from] index::error::IndexError),
#[error(transparent)]
FileStore(#[from] file_store::Error),
#[error(transparent)]
IoError(#[from] std::io::Error),
@ -48,7 +47,6 @@ impl ErrorCode for Error {
// TODO: TAMO: are all these errors really internal?
Error::Heed(_) => Code::Internal,
Error::Milli(_) => Code::Internal,
Error::IndexError(_) => Code::Internal,
Error::FileStore(_) => Code::Internal,
Error::IoError(_) => Code::Internal,
Error::Anyhow(_) => Code::Internal,

View file

@ -5,13 +5,12 @@ use std::sync::{Arc, RwLock};
use std::{fs, thread};
use log::error;
use milli::Index;
use meilisearch_types::heed::types::{SerdeBincode, Str};
use meilisearch_types::heed::{Database, Env, EnvOpenOptions, RoTxn, RwTxn};
use meilisearch_types::milli::update::IndexerConfig;
use meilisearch_types::milli::Index;
use uuid::Uuid;
use milli::heed::types::{SerdeBincode, Str};
use milli::heed::{Database, Env, EnvOpenOptions, RoTxn, RwTxn};
use milli::update::IndexerConfig;
use self::IndexStatus::{Available, BeingDeleted};
use crate::{Error, Result};
@ -70,7 +69,7 @@ impl IndexMapper {
fs::create_dir_all(&index_path)?;
let mut options = EnvOpenOptions::new();
options.map_size(self.index_size);
Ok(milli::Index::new(options, &index_path)?)
Ok(Index::new(options, &index_path)?)
}
error => error,
}
@ -153,7 +152,7 @@ impl IndexMapper {
fs::create_dir_all(&index_path)?;
let mut options = EnvOpenOptions::new();
options.map_size(self.index_size);
let index = milli::Index::new(options, &index_path)?;
let index = Index::new(options, &index_path)?;
entry.insert(Available(index.clone()));
index
}

View file

@ -7,8 +7,6 @@ mod snapshot;
pub mod task;
mod utils;
pub use milli;
pub type Result<T> = std::result::Result<T, Error>;
pub type TaskId = u32;
@ -26,10 +24,10 @@ use synchronoise::SignalEvent;
use time::OffsetDateTime;
use uuid::Uuid;
use milli::heed::types::{OwnedType, SerdeBincode, SerdeJson, Str};
use milli::heed::{self, Database, Env};
use milli::update::IndexerConfig;
use milli::{Index, RoaringBitmapCodec, BEU32};
use meilisearch_types::heed::types::{OwnedType, SerdeBincode, SerdeJson, Str};
use meilisearch_types::heed::{self, Database, Env};
use meilisearch_types::milli::update::IndexerConfig;
use meilisearch_types::milli::{Index, RoaringBitmapCodec, BEU32};
use crate::index_mapper::IndexMapper;
use crate::task::Task;
@ -452,7 +450,7 @@ impl IndexScheduler {
mod tests {
use big_s::S;
use insta::*;
use milli::update::IndexDocumentsMethod::ReplaceDocuments;
use meilisearch_types::milli::update::IndexDocumentsMethod::ReplaceDocuments;
use tempfile::TempDir;
use uuid::Uuid;
@ -512,7 +510,8 @@ mod tests {
.create_update_file_with_uuid(file_uuid)
.unwrap();
let documents_count =
document_formats::read_json(content.as_bytes(), file.as_file_mut()).unwrap() as u64;
meilisearch_types::document_formats::read_json(content.as_bytes(), file.as_file_mut())
.unwrap() as u64;
(file, documents_count)
}
@ -779,7 +778,8 @@ mod tests {
let (uuid, mut file) = index_scheduler.create_update_file_with_uuid(0).unwrap();
let documents_count =
document_formats::read_json(content.as_bytes(), file.as_file_mut()).unwrap() as u64;
meilisearch_types::document_formats::read_json(content.as_bytes(), file.as_file_mut())
.unwrap() as u64;
index_scheduler
.register(KindWithContent::DocumentImport {
index_uid: S("doggos"),

View file

@ -1,10 +1,8 @@
use milli::{
heed::{
types::{OwnedType, SerdeBincode, SerdeJson, Str},
Database, RoTxn,
},
RoaringBitmapCodec, BEU32,
use meilisearch_types::heed::{
types::{OwnedType, SerdeBincode, SerdeJson, Str},
Database, RoTxn,
};
use meilisearch_types::milli::{RoaringBitmapCodec, BEU32};
use roaring::RoaringBitmap;
use crate::{

View file

@ -1,7 +1,7 @@
use anyhow::Result;
use index::{Settings, Unchecked};
use meilisearch_types::error::ResponseError;
use milli::update::IndexDocumentsMethod;
use meilisearch_types::milli::update::IndexDocumentsMethod;
use meilisearch_types::settings::{Settings, Unchecked};
use serde::{Deserialize, Serialize, Serializer};
use std::{
@ -543,7 +543,7 @@ fn serialize_duration<S: Serializer>(
#[cfg(test)]
mod tests {
use milli::heed::{types::SerdeJson, BytesDecode, BytesEncode};
use meilisearch_types::heed::{types::SerdeJson, BytesDecode, BytesEncode};
use crate::assert_smol_debug_snapshot;

View file

@ -1,9 +1,7 @@
//! Utility functions on the DBs. Mainly getter and setters.
use milli::{
heed::{types::DecodeIgnore, RoTxn, RwTxn},
BEU32,
};
use meilisearch_types::heed::{types::DecodeIgnore, RoTxn, RwTxn};
use meilisearch_types::milli::BEU32;
use roaring::RoaringBitmap;
use crate::{