mirror of
https://github.com/quickwit-oss/tantivy.git
synced 2026-01-07 09:32:54 +00:00
91 lines
4.6 KiB
Markdown
91 lines
4.6 KiB
Markdown
|
|
[](https://travis-ci.org/tantivy-search/tantivy)
|
|
[](https://codecov.io/gh/tantivy-search/tantivy)
|
|
[](https://gitter.im/tantivy-search/tantivy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
[](https://opensource.org/licenses/MIT)
|
|
[](https://ci.appveyor.com/project/fulmicoton/tantivy/branch/master)
|
|
[](https://saythanks.io/to/fulmicoton)
|
|
|
|

|
|
|
|
[](https://sourcerer.io/fame/fulmicoton/tantivy-search/tantivy/links/0)
|
|
[](https://sourcerer.io/fame/fulmicoton/tantivy-search/tantivy/links/1)
|
|
[](https://sourcerer.io/fame/fulmicoton/tantivy-search/tantivy/links/2)
|
|
[](https://sourcerer.io/fame/fulmicoton/tantivy-search/tantivy/links/3)
|
|
[](https://sourcerer.io/fame/fulmicoton/tantivy-search/tantivy/links/4)
|
|
[](https://sourcerer.io/fame/fulmicoton/tantivy-search/tantivy/links/5)
|
|
[](https://sourcerer.io/fame/fulmicoton/tantivy-search/tantivy/links/6)
|
|
[](https://sourcerer.io/fame/fulmicoton/tantivy-search/tantivy/links/7)
|
|
|
|
|
|
|
|
**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
|
|
- Fast (check out the :racehorse: :sparkles: [benchmark](https://tantivy-search.github.io/bench/) :sparkles: :racehorse:)
|
|
- Tiny startup time (<10ms), perfect for command line tools
|
|
- BM25 scoring (the same as lucene)
|
|
- Natural query language `(michael AND jackson) OR "king of pop"`
|
|
- 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 is out of the scope of tantivy. That being said, tantivy is meant as a
|
|
library upon which one could build a distributed search. Serializable/mergeable collector state for instance,
|
|
are within the scope of tantivy.
|
|
|
|
|
|
# Supported OS and compiler
|
|
|
|
Tantivy works on stable rust (>= 1.27) and supports Linux, MacOS and Windows.
|
|
|
|
# Getting started
|
|
|
|
- [tantivy's simple search example](http://fulmicoton.com/tantivy-examples/simple_search.html)
|
|
- [tantivy-cli and its tutorial](https://github.com/tantivy-search/tantivy-cli).
|
|
`tantivy-cli` is 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]
|
|
- [For the last released version](https://docs.rs/tantivy/)
|
|
- [For the last master branch](https://tantivy-search.github.io/tantivy/tantivy/index.html)
|
|
|
|
# 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
|
|
|
|
## Running tests
|
|
|
|
Some tests will not run with just `cargo test` because of `fail-rs`.
|
|
To run the tests exhaustively, run `./run-tests.sh`.
|
|
|
|
# Contribute
|
|
|
|
Send me an email (paul.masurel at gmail.com) if you want to contribute to tantivy.
|