
Un indexeur simultané combiné avec des algorithmes de recherche rapides et pertinents
Le contenu de ce référentiel est désormais disponible dans le référentiel Meilisearch dans le Workspace milli .
Ce référentiel contient le moteur de base utilisé dans MeiliSearch.
Il contient une bibliothèque qui peut gérer un et un seul index. Meilisearch gère l'index multi-index lui-même. Milli est incapable de stocker des mises à jour dans un magasin: c'est le travail de quelque chose d'autre ci-dessus et c'est pourquoi il n'est en mesure de traiter une mise à jour à la fois.
Ce référentiel contient des caisses pour déboguer rapidement le moteur:
benchmarks .cli Crate est une interface de ligne de commande simple qui aide à exécuter FlameGraph en plus.filter-parser contient l'analyseur de la syntaxe du filtre MeiLiSearch.flatten-serde-json contient la bibliothèque qui affronte les objets Value Serde-Json comme Elasticsearch.json-depth-checker est utilisée pour indiquer si un JSON doit être aplati. Milli est une bibliothèque qui recherche des choses, elle doit être intégrée dans un programme. Vous pouvez en calculer la documentation en utilisant cargo doc --open .
Voici un exemple d'utilisation de la bibliothèque où nous insérons des documents dans le moteur et recherchons l'un d'eux juste après.
let path = tempfile :: tempdir ( ) . unwrap ( ) ;
let mut options = EnvOpenOptions :: new ( ) ;
options . map_size ( 10 * 1024 * 1024 ) ; // 10 MB
let index = Index :: new ( options , & path ) . unwrap ( ) ;
let mut wtxn = index . write_txn ( ) . unwrap ( ) ;
let content = documents ! ( [
{
"id" : 2 ,
"title" : "Prideand Prejudice" ,
"author" : "Jane Austin" ,
"genre" : "romance" ,
"price$" : "3.5$" ,
} ,
{
"id" : 456 ,
"title" : "Le Petit Prince" ,
"author" : "Antoine de Saint-Exupéry" ,
"genre" : "adventure" ,
"price$" : "10.0$" ,
} ,
{
"id" : 1 ,
"title" : "Wonderland" ,
"author" : "Lewis Carroll" ,
"genre" : "fantasy" ,
"price$" : "25.99$" ,
} ,
{
"id" : 4 ,
"title" : "Harry Potter ing fantasy