
Um indexador simultâneo combinado com algoritmos de pesquisa rápidos e relevantes
O conteúdo deste repositório está agora disponível no Repositório Meilisesearch na área de trabalho milli .
Este repositório contém o mecanismo principal usado no Meilisearch.
Ele contém uma biblioteca que pode gerenciar um e apenas um índice. Meilisearch gerencia o próprio índice. Milli não consegue armazenar atualizações em uma loja: é o trabalho de outra coisa acima e é por isso que só pode processar uma atualização por vez.
Este repositório contém caixas para depurar rapidamente o mecanismo:
benchmarks .cli Crate é uma interface simples da linha de comando que ajuda a executar o FlameGraph em cima dela.filter-parser contém o analisador para a sintaxe do filtro Meilisearch.flatten-serde-json contém a biblioteca que se achata objetos Value de serde-json, como o Elasticsearch.json-depth-checker é usada para indicar se um JSON deve ser achatado. Milli é uma biblioteca que procura coisas, deve ser incorporada em um programa. Você pode calcular a documentação usando cargo doc --open .
Aqui está um exemplo de uso da biblioteca em que inserimos documentos no mecanismo e procuramos um deles logo depois.
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