Tantivy is a full text search engine library written in rust.
It is closer to Lucene than to Elastic Search and Solr in the sense it is not an off-the-shelf search engine server, but rather a crate that can be used to build such a search engine.
Tantivy is, in fact, strongly inspired by Lucene's design.
- Full-text search
- Tiny startup time (<10ms), perfect for command line tools
- BM25 scoring (the same as lucene)
- Basic query language (
- Phrase queries search ("michael jackson"`)
- Incremental indexing
- Multithreaded indexing (indexing English Wikipedia takes < 3 minutes on my desktop)
- Mmap directory
- SIMD integer compression when the platform/CPU includes the SSE2 instruction set.
- Single valued and multivalued u64 and i64 fast fields (equivalent of doc values in Lucene)
- LZ4 compressed document store
- Range queries
- Faceted search
- Configurable indexing (optional term frequency and position indexing
- Cheesy logo with a horse
- Distributed search and will not be in the scope of tantivy.
Supported OS and compiler
Tantivy works on stable rust (>= 1.27) and supports Linux, MacOS and Windows.
- tantivy's simple search example
- tantivy-cli and its tutorial.
tantivy-cliis an actual command line interface that makes it easy for you to create a search engine, index documents and search via the CLI or a small server with a REST API. It will walk you through getting a wikipedia search engine up and running in a few minutes.
- [reference doc]
Tantivy compiles on stable rust but requires
Rust >= 1.27.
To check out and run tests, you can simply run :
git clone firstname.lastname@example.org:tantivy-search/tantivy.git cd tantivy cargo build
Send me an email (paul.masurel at gmail.com) if you want to contribute to tantivy.