/tantivy

Tantivy is a full-text search engine library inspired by Lucene and written in Rust

Primary LanguageRustMIT LicenseMIT

Tantivy

Build Status Coverage Status Join the chat at https://gitter.im/tantivy-search/tantivy License: MIT Build status

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.

Features

  • Full-text search
  • Tiny startup time (<10ms), perfect for command line tools
  • BM25 scoring (the same as lucene)
  • Basic query language (+michael +jackson)
  • 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)
  • &[u8] fast fields
  • LZ4 compressed document store
  • Range queries
  • Faceted search
  • Configurable indexing (optional term frequency and position indexing
  • Cheesy logo with a horse

Non-features

  • 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.

Getting started

Compiling

Development

Tantivy compiles on stable rust but requires Rust >= 1.27. To check out and run tests, you can simply run :

git clone git@github.com:tantivy-search/tantivy.git
cd tantivy
cargo build

Contribute

Send me an email (paul.masurel at gmail.com) if you want to contribute to tantivy.