Pas activement développé. S'il vous plaît, consultez plutôt Toshi !
Serveur de recherche léger compatible avec Elasticsearch.
Un moteur de recherche de bonne qualité est important pour de nombreux sites Web et Elasticsearch le fournit avec une API REST facile à utiliser. Mais le problème avec Elasticsearch est qu’il nécessite un minimum de 2 Go de mémoire, ce qui rend son fonctionnement coûteux.
L'objectif de ce projet est de créer un nouveau serveur de recherche utilisant les puissantes fonctionnalités de recherche et l'API simple d'Elasticsearch, mais de l'implémenter dans un langage offrant davantage de contrôle sur l'utilisation de la mémoire. Nous visons à maintenir l’utilisation de la mémoire en dessous de 100 Mo (hors cache), son exécution devrait donc être très bon marché.
Rust libère de la mémoire au fur et à mesure plutôt que de laisser la mémoire inutilisée qui sera collectée plus tard par un « ramasse-miettes » comme Java. Dans Elasticsearch, ce tas de déchets peut gaspiller des gigaoctets de mémoire qui pourraient autrement être utilisés comme cache.
Rust est un langage de programmation système de Mozilla conçu pour créer des logiciels rapides, sécurisés et fiables.
Veuillez considérer ce projet comme étant de qualité pré-alpha. Il ne prend actuellement en charge qu'un sous-ensemble des API d'Elasticsearch, ce qui n'est probablement pas suffisant pour exécuter la plupart des applications.
Il prend actuellement en charge l'indexation, à la fois en bloc et individuellement (cependant, l'indexeur en bloc est assez lent pour le moment) et la recherche à l'aide de l'algorithme de similarité BM25.
Consultez la feuille de route pour une liste des choses sur lesquelles nous travaillons en ce moment.
Voir Prise en charge DSL des requêtes Elasticsearch.
Rusticsearch n'a été officiellement testé que sous Linux et Windows, mais il devrait également fonctionner sous Mac OS X.
Rusticsearch peut être compilé avec Rust stable 1.15 ou version ultérieure. Vous pouvez le télécharger sur le site Web de Rust ou utiliser Rustup.
Une fois Rust installé, clonez le dépôt et exécutez cargo run
:
git clone [email protected]:kaedroho/rusticsearch.git
cd rusticsearch
cargo run