
Ein gleichzeitiger Indexer kombiniert mit schnellen und relevanten Suchalgorithmen
Der Inhalt dieses Repositorys ist jetzt im Meilisearch -Repository im Arbeitsbereich milli verfügbar.
Dieses Repository enthält die Kernmotor, die in Meilisearch verwendet wird.
Es enthält eine Bibliothek, die einen und nur einen Index verwalten kann. Meilisearch verwaltet den Multi-Index selbst. Milli kann keine Updates in einem Geschäft speichern: Es ist die Aufgabe von etwas anderem oben und deshalb ist es nur in der Lage, jeweils ein Update zu verarbeiten.
Dieses Repository enthält Kisten, um den Motor schnell zu debuggen:
benchmarks -Kiste.cli Kiste ist eine einfache Befehlszeilenschnittstelle, mit der Flamegraph darüber ausgeführt wird.filter-parser Kiste enthält den Parser für die Meilisarch-Filtersyntax.flatten-serde-json Kiste enthält die Bibliothek, die Serde-Json Value Objekte wie Elasticsearch flacht.json-depth-checker Kisten wird verwendet, um anzuzeigen, ob ein JSON abgeflacht werden muss. Milli ist eine Bibliothek, die Dinge durchsucht, sie muss in ein Programm eingebettet sein. Sie können die Dokumentation davon mithilfe von cargo doc --open berechnen.
Hier ist eine Beispielverwendung der Bibliothek, in der wir Dokumente in die Engine einfügen und gleich danach nach einem von ihnen suchen.
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