Toshi: A full text search engine modeled after Elasticsearch
Introducing Toshi, a search engine based on Elasticsearch. While Toshi is still a work in progress, it has some interesting features for developers looking to safely search in Rust. But does it really stack up compared to Elasticsearch? We take a look at some of the newest upgrades to Elasticsearch to compare.
Developers looking for a text search engine have a lot of options out there, even when they narrow it down to Rust. However, it’s time to add another one to the heap: Toshi.
Toshi is still a work in progress and very much not ready for use in production. However, it has a few features that really shine through. Among them is its promise to aim for safe Rust usage.
Specifically, Toshi aims for safety, stability, and consistency. By targeting safe Rust, Toshi vets libraries and makes sure that it avoids unsafe Rust usage. This means that developers never have to worry about unsafe library dependencies (which have gotten into the news recently for all the wrong reasons).
Toshi isn’t meant to be a library, but an out of the box solution for developers looking for safe and stable text search functionality for Rust. For those of us who did well with the analogy section on standardized tests, Toshi is to Elasticsearch as Tantivy is to Lucerne.
While Toshi is interesting, Elasticsearch is the indubitable winner. Elasticsearch 6.5 came out late last year with a whole host of new features and enhancements, including cross-cluster replication, minimal snapshots, and JDK 11 support. Plus, new SQL and ODBC capabilities and search use cases.
Going along the aim for a safer search experience, Elasticsearch 6.5 brings a number of security features. Structured security audit logging names all attributes. Every log entry is a one-line JSON document, printed on a separate line, and ordered neatly, making it readable to both machines and humans alike.
Plus, Elasticsearch 6.5 comes with new machine learning capabilities with the introduction of multi-bucket analysis for anomaly detection in multi-metric time series. There’s even an experimental find file structure API, which helps developers discover the structure of a text file.
Getting Toshi or Elasticsearch
Choosing between these two text search is mostly a question of what you’ll be using it for. Do you want a simple and stable option for Rust for a personal project? You should probably try out Toshi. Looking to develop for work and you need a lot of bells and whistles? Aim for Elasticsearch. But, of course, developing is always a matter of personal preference. Don’t listen to us: try them both out for yourself and let us know what you think in the comments below!
Toshi is freely available on GitHub. Developers do need to have Rust 1.27 or above and Cargo installed in order to utilize Toshi. Contributions, criticisms, and just saying hi is always welcome.