{"id":13440141,"url":"https://github.com/quickwit-oss/tantivy","last_synced_at":"2025-05-12T16:15:50.795Z","repository":{"id":37022463,"uuid":"49412556","full_name":"quickwit-oss/tantivy","owner":"quickwit-oss","description":"Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust","archived":false,"fork":false,"pushed_at":"2025-04-22T01:51:52.000Z","size":63184,"stargazers_count":13091,"open_issues_count":355,"forks_count":751,"subscribers_count":145,"default_branch":"main","last_synced_at":"2025-05-05T14:12:31.476Z","etag":null,"topics":["rust","search-engine"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quickwit-oss.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"fulmicoton","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2016-01-11T08:32:16.000Z","updated_at":"2025-05-04T09:33:12.000Z","dependencies_parsed_at":"2023-12-21T12:13:51.643Z","dependency_job_id":"9ba1a4e0-6e08-4388-9e38-d75a2af9e952","html_url":"https://github.com/quickwit-oss/tantivy","commit_stats":{"total_commits":2631,"total_committers":136,"mean_commits":"19.345588235294116","dds":0.5047510452299506,"last_synced_commit":"80df1d9835fcdb22b1a53ddc9cc03e368263e593"},"previous_names":["tantivy-search/tantivy","quickwit-inc/tantivy"],"tags_count":77,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quickwit-oss%2Ftantivy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quickwit-oss%2Ftantivy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quickwit-oss%2Ftantivy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quickwit-oss%2Ftantivy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quickwit-oss","download_url":"https://codeload.github.com/quickwit-oss/tantivy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253774583,"owners_count":21962199,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rust","search-engine"],"created_at":"2024-07-31T03:01:20.138Z","updated_at":"2025-05-12T16:15:50.779Z","avatar_url":"https://github.com/quickwit-oss.png","language":"Rust","funding_links":["https://github.com/sponsors/fulmicoton"],"categories":["Rust","Libraries","Sdks \u0026 Libraries","Install from Source","Texts","库 Libraries","rust","数据搜索引擎","search-engine","Systems \u0026 Low-Level","Platforms services and devops","Tools","5. Retrieval-Augmented Generation (RAG) \u0026 Knowledge","\u003ca name=\"Rust\"\u003e\u003c/a\u003eRust","Applications"],"sub_categories":["Text search","Search","文本搜索 Text search","网络服务_其他","Rust","Search (Algolia alternatives)","Libs"],"readme":"[![Docs](https://docs.rs/tantivy/badge.svg)](https://docs.rs/crate/tantivy/)\n[![Build Status](https://github.com/quickwit-oss/tantivy/actions/workflows/test.yml/badge.svg)](https://github.com/quickwit-oss/tantivy/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/quickwit-oss/tantivy/branch/main/graph/badge.svg)](https://codecov.io/gh/quickwit-oss/tantivy)\n[![Join the chat at https://discord.gg/MT27AG5EVE](https://shields.io/discord/908281611840282624?label=chat%20on%20discord)](https://discord.gg/MT27AG5EVE)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Crates.io](https://img.shields.io/crates/v/tantivy.svg)](https://crates.io/crates/tantivy)\n\n\u003cimg src=\"https://tantivy-search.github.io/logo/tantivy-logo.png\" alt=\"Tantivy, the fastest full-text search engine library written in Rust\" height=\"250\"\u003e\n\n## Fast full-text search engine library written in Rust\n\n**If you are looking for an alternative to Elasticsearch or Apache Solr, check out [Quickwit](https://github.com/quickwit-oss/quickwit), our distributed search engine built on top of Tantivy.**\n\nTantivy is closer to [Apache Lucene](https://lucene.apache.org/) than to [Elasticsearch](https://www.elastic.co/products/elasticsearch) or [Apache Solr](https://lucene.apache.org/solr/) in the sense it is not\nan off-the-shelf search engine server, but rather a crate that can be used to build such a search engine.\n\nTantivy is, in fact, strongly inspired by Lucene's design.\n\n## Benchmark\n\nThe following [benchmark](https://tantivy-search.github.io/bench/) breaks down the\nperformance for different types of queries/collections.\n\nYour mileage WILL vary depending on the nature of queries and their load.\n\n\u003cimg src=\"doc/assets/images/searchbenchmark.png\"\u003e\n\nDetails about the benchmark can be found at this [repository](https://github.com/quickwit-oss/search-benchmark-game).\n\n## Features\n\n- Full-text search\n- Configurable tokenizer (stemming available for 17 Latin languages) with third party support for Chinese ([tantivy-jieba](https://crates.io/crates/tantivy-jieba) and [cang-jie](https://crates.io/crates/cang-jie)), Japanese ([lindera](https://github.com/lindera-morphology/lindera-tantivy), [Vaporetto](https://crates.io/crates/vaporetto_tantivy), and [tantivy-tokenizer-tiny-segmenter](https://crates.io/crates/tantivy-tokenizer-tiny-segmenter)) and Korean ([lindera](https://github.com/lindera-morphology/lindera-tantivy) + [lindera-ko-dic-builder](https://github.com/lindera-morphology/lindera-ko-dic-builder))\n- Fast (check out the :racehorse: :sparkles: [benchmark](https://tantivy-search.github.io/bench/) :sparkles: :racehorse:)\n- Tiny startup time (\u003c10ms), perfect for command-line tools\n- BM25 scoring (the same as Lucene)\n- Natural query language (e.g. `(michael AND jackson) OR \"king of pop\"`)\n- Phrase queries search (e.g. `\"michael jackson\"`)\n- Incremental indexing\n- Multithreaded indexing (indexing English Wikipedia takes \u003c 3 minutes on my desktop)\n- Mmap directory\n- SIMD integer compression when the platform/CPU includes the SSE2 instruction set\n- Single valued and multivalued u64, i64, and f64 fast fields (equivalent of doc values in Lucene)\n- `\u0026[u8]` fast fields\n- Text, i64, u64, f64, dates, ip, bool, and hierarchical facet fields\n- Compressed document store (LZ4, Zstd, None)\n- Range queries\n- Faceted search\n- Configurable indexing (optional term frequency and position indexing)\n- JSON Field\n- Aggregation Collector: histogram, range buckets, average, and stats metrics\n- LogMergePolicy with deletes\n- Searcher Warmer API\n- Cheesy logo with a horse\n\n### Non-features\n\nDistributed search is out of the scope of Tantivy, but if you are looking for this feature, check out [Quickwit](https://github.com/quickwit-oss/quickwit/).\n\n## Getting started\n\nTantivy works on stable Rust and supports Linux, macOS, and Windows.\n\n- [Tantivy's simple search example](https://tantivy-search.github.io/examples/basic_search.html)\n- [tantivy-cli and its tutorial](https://github.com/quickwit-oss/tantivy-cli) - `tantivy-cli` is an actual command-line interface that makes it easy for you to create a search engine,\nindex documents, and search via the CLI or a small server with a REST API.\nIt walks you through getting a Wikipedia search engine up and running in a few minutes.\n- [Reference doc for the last released version](https://docs.rs/tantivy/)\n\n## How can I support this project?\n\nThere are many ways to support this project.\n\n- Use Tantivy and tell us about your experience on [Discord](https://discord.gg/MT27AG5EVE) or by email (paul.masurel@gmail.com)\n- Report bugs\n- Write a blog post\n- Help with documentation by asking questions or submitting PRs\n- Contribute code (you can join [our Discord server](https://discord.gg/MT27AG5EVE))\n- Talk about Tantivy around you\n\n## Contributing code\n\nWe use the GitHub Pull Request workflow: reference a GitHub ticket and/or include a comprehensive commit message when opening a PR.\nFeel free to update CHANGELOG.md with your contribution.\n\n### Tokenizer\n\nWhen implementing a tokenizer for tantivy depend on the `tantivy-tokenizer-api` crate.\n\n### Clone and build locally\n\nTantivy compiles on stable Rust.\nTo check out and run tests, you can simply run:\n\n```bash\ngit clone https://github.com/quickwit-oss/tantivy.git\ncd tantivy\ncargo test\n```\n\n## Companies Using Tantivy\n\n\u003cp align=\"left\"\u003e\n\u003cimg align=\"center\" src=\"doc/assets/images/etsy.png\" alt=\"Etsy\" height=\"25\" width=\"auto\" /\u003e \u0026nbsp;\n\u003cimg align=\"center\" src=\"doc/assets/images/paradedb.png\" alt=\"ParadeDB\" height=\"25\" width=\"auto\" /\u003e \u0026nbsp;\n\u003cimg align=\"center\" src=\"doc/assets/images/Nuclia.png#gh-light-mode-only\" alt=\"Nuclia\" height=\"25\" width=\"auto\" /\u003e \u0026nbsp;\n\u003cimg align=\"center\" src=\"doc/assets/images/humanfirst.png#gh-light-mode-only\" alt=\"Humanfirst.ai\" height=\"30\" width=\"auto\" /\u003e\n\u003cimg align=\"center\" src=\"doc/assets/images/element.io.svg#gh-light-mode-only\" alt=\"Element.io\" height=\"25\" width=\"auto\" /\u003e\n\u003cimg align=\"center\" src=\"doc/assets/images/nuclia-dark-theme.png#gh-dark-mode-only\" alt=\"Nuclia\" height=\"35\" width=\"auto\" /\u003e \u0026nbsp;\n\u003cimg align=\"center\" src=\"doc/assets/images/humanfirst.ai-dark-theme.png#gh-dark-mode-only\" alt=\"Humanfirst.ai\" height=\"25\" width=\"auto\" /\u003e\u0026nbsp; \u0026nbsp;\n\u003cimg align=\"center\" src=\"doc/assets/images/element-dark-theme.png#gh-dark-mode-only\" alt=\"Element.io\" height=\"25\" width=\"auto\" /\u003e\n\u003c/p\u003e\n\n## FAQ\n\n### Can I use Tantivy in other languages?\n\n- Python → [tantivy-py](https://github.com/quickwit-oss/tantivy-py)\n- Ruby → [tantiny](https://github.com/baygeldin/tantiny)\n\nYou can also find other bindings on [GitHub](https://github.com/search?q=tantivy) but they may be less maintained.\n\n### What are some examples of Tantivy use?\n\n- [seshat](https://github.com/matrix-org/seshat/): A matrix message database/indexer\n- [tantiny](https://github.com/baygeldin/tantiny): Tiny full-text search for Ruby\n- [lnx](https://github.com/lnx-search/lnx): adaptable, typo tolerant search engine with a REST API\n- and [more](https://github.com/search?q=tantivy)!\n\n### On average, how much faster is Tantivy compared to Lucene?\n\n- According to our [search latency benchmark](https://tantivy-search.github.io/bench/), Tantivy is approximately 2x faster than Lucene.\n\n### Does tantivy support incremental indexing?\n\n- Yes.\n\n### How can I edit documents?\n\n- Data in tantivy is immutable. To edit a document, the document needs to be deleted and reindexed.\n\n### When will my documents be searchable during indexing?\n\n- Documents will be searchable after a `commit` is called on an `IndexWriter`. Existing `IndexReader`s will also need to be reloaded in order to reflect the changes. Finally, changes are only visible to newly acquired `Searcher`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquickwit-oss%2Ftantivy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquickwit-oss%2Ftantivy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquickwit-oss%2Ftantivy/lists"}