Não desenvolvido ativamente. Por favor, dê uma olhada em toshi!
Servidor de pesquisa leve compatível com Elasticsearch.
Um mecanismo de pesquisa de boa qualidade é importante para muitos sites e o Elasticsearch fornece uma API REST fácil de usar. Mas o problema do Elasticsearch é que ele requer no mínimo 2 GB de memória, o que torna sua execução cara.
O objetivo deste projeto é construir um novo servidor de pesquisa que utilize os poderosos recursos de pesquisa e a API simples do Elasticsearch, mas implemente-os em uma linguagem com mais controle sobre o uso de memória. Nosso objetivo é manter o uso de memória abaixo de 100 MB (excluindo cache), por isso deve ser muito barato para executar.
A ferrugem libera memória à medida que avança, em vez de deixar a memória não utilizada para ser coletada posteriormente por um "coletor de lixo" como o Java. No Elasticsearch, esse monte de lixo pode desperdiçar gigabytes de memória que poderiam ser usados como cache.
Rust é uma linguagem de programação de sistemas da Mozilla projetada para construir software rápido, seguro e confiável.
Por favor, considere este projeto como qualidade pré-alfa. Atualmente, ele oferece suporte apenas a um subconjunto de APIs do Elasticsearch, o que provavelmente não é suficiente para executar a maioria dos aplicativos.
Atualmente, ele suporta indexação, tanto em massa quanto individualmente (no entanto, o indexador em massa é bastante lento no momento) e pesquisa usando o algoritmo de similaridade BM25.
Consulte o roteiro para obter uma lista de coisas que estão sendo trabalhadas no momento.
Consulte Suporte DSL para consultas do Elasticsearch.
Rusticsearch só foi testado oficialmente em Linux e Windows, mas também deve rodar em Mac OS X.
Rusticsearch pode ser compilado com Rust stable 1.15 ou posterior. Você pode baixá-lo do site do Rust ou usar o Rustup.
Depois que o Rust estiver instalado, clone o repositório e execute cargo run
:
git clone [email protected]:kaedroho/rusticsearch.git
cd rusticsearch
cargo run