{"slug": "tantivy", "name": "Tantivy", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 4, "commenters": 6, "warners": 0, "score": 4.208, "rising": 0.02, "first": "2025-12-30", "latest": "2026-08-23", "why": "tantivy's BM25 search is faster, more expressive, and more scalable than SQLite.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 2, "compare": 0, "warn": 0}, "spark": [0, 0, 0, 1, 0, 0, 0, 0, 2, 1, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "tantivy's BM25 search is faster, more expressive, and more scalable than SQLite.", "icon": true, "domain": null, "github_repo": "github.com/quickwit-oss/tantivy", "official_url": "https://github.com/quickwit-oss/tantivy", "pricing": "", "aliases": ["Tantivy", "tantivy"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 790234273, "item_id": 49389642, "url": "https://news.ycombinator.com/item?id=49389642", "by": "luca-ctx", "date": "2026-08-21", "stance": "recommend", "quote": "switched from sqlite to Tantivy, resulting in ~16x performance improvement", "excerpt": "OP here ctx has reached major stable version 1.0. It's an open-source local CLI for searching your coding agent history. 1.0 brings several big changes: - switched from sqlite to Tantivy, resulting in ~16x performance improvement - introduced \"lineage\", so the CLI can understand how to trace deep subagents and forked sessions to where they came from - introduced \"ctx blame\", which is like git blame but for agent sess", "context": "", "use_case": "search indexing", "switched_from": "SQLite", "story": "Show HN: ctx 1.0 - `git blame` but for agent sessions"}, {"id": 782227251, "item_id": 48889203, "url": "https://news.ycombinator.com/item?id=48889203", "by": "probst", "date": "2026-07-13", "stance": "recommend", "quote": "a quite sophisticated search stack built around Tantivy [2]", "excerpt": "We are working on our two site-search search engines Monocle Search [0] and SearchCue [1]. The former is squarely aimed at people using Squarespace, whereas our newer offering SearchCue is aimed at anyone with a site that wants to add search. We used Meilisearch as the search backend in the beginning but have since replaced it with a quite sophisticated search stack built around Tantivy [2]. We now support crawling a", "context": "", "use_case": "search backend", "switched_from": "Meilisearch", "story": "Ask HN: What Are You Working On? (July 2026)"}, {"id": 781322551, "item_id": 48832659, "url": "https://news.ycombinator.com/item?id=48832659", "by": "brainless", "date": "2026-07-08", "stance": "recommend", "quote": "SQLite + sqlite-vec + Tantivy + a tiny embedding model will stay as my go to.", "excerpt": "I have a project on very similar lines, https://github.com/brainless/dwata, which I have not been developing for the past few months. I have been meaning to get back to it and I really like what I see on your project page. My aim is to build a truly local app using only tiny/small models. I have had really good results from Qwen 3.5 1B, 4B, etc. Also, Gliner or similar models for different uses. SQLite + sqlite-vec +", "context": "", "use_case": "full-text search", "switched_from": "", "story": "Show HN: Rowboat \u2013 Open-source, local-first alternative to Claude Desktop"}, {"id": 754421440, "item_id": 47151340, "url": "https://news.ycombinator.com/item?id=47151340", "by": "i3oi3", "date": "2026-02-25", "stance": "recommend", "quote": "tantivy's BM25 search is faster, more expressive, and more scalable than SQLite.", "excerpt": "Interesting approach. I just finished some work for a similar task in a different domain. One thing that surprised me: tantivy's BM25 search is faster, more expressive, and more scalable than SQLite. If you're just building a local search (or want to optimize for local FTS), I would strongly recommend looking into tantivy. If you have the resources, it would be very interesting to throw a some models (especially smar", "context": "", "use_case": "local full-text search", "switched_from": "", "story": "Show HN: Context Mode \u2013 315 KB of MCP output becomes 5.4 KB in Claude Code"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["full-text search on object storage", "search indexing", "search backend", "full-text search", "local full-text search", "full-text search over sessions"], "compared": [{"slug": "sqlite", "name": "SQLite", "co": 3, "switched_from": 1, "switched_to": 0}, {"slug": "meilisearch", "name": "Meilisearch", "co": 1, "switched_from": 1, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49411962", "title": "I made a byte-range cache for object storage", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49389641", "title": "Show HN: ctx 1.0 - `git blame` but for agent sessions", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48884984", "title": "Ask HN: What Are You Working On? (July 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48819808", "title": "Show HN: Rowboat \u2013 Open-source, local-first alternative to Claude Desktop", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47148025", "title": "Show HN: Context Mode \u2013 315 KB of MCP output becomes 5.4 KB in Claude Code", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46426624", "title": "Stop Claude Code from forgetting everything", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"neutral": 1}, "2026-01": {}, "2026-02": {"recommend": 1}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"recommend": 2}, "2026-08": {"recommend": 1, "neutral": 1}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 790591408, "item_id": 49411963, "url": "https://news.ycombinator.com/item?id=49411963", "by": "xavcochran", "date": "2026-08-23", "stance": "neutral", "quote": "a full-text search implementation that uses tantivy which was adapted to be transactional and run on object storage", "excerpt": "I made a byte-range cache for object storage. For full hits it's zero copy. On a miss, it fetches only the missing bytes from object storage needed to serve the request. It merges overlapping ranges and coalesces concurrent misses into one object storage request. I use it primarily for a full-text search implementation that uses tantivy which was adapted to be transactional and run on object storage. With our impleme", "context": "", "use_case": "full-text search on object storage", "switched_from": "", "story": "I made a byte-range cache for object storage"}, {"id": 790234273, "item_id": 49389642, "url": "https://news.ycombinator.com/item?id=49389642", "by": "luca-ctx", "date": "2026-08-21", "stance": "recommend", "quote": "switched from sqlite to Tantivy, resulting in ~16x performance improvement", "excerpt": "OP here ctx has reached major stable version 1.0. It's an open-source local CLI for searching your coding agent history. 1.0 brings several big changes: - switched from sqlite to Tantivy, resulting in ~16x performance improvement - introduced \"lineage\", so the CLI can understand how to trace deep subagents and forked sessions to where they came from - introduced \"ctx blame\", which is like git blame but for agent sess", "context": "", "use_case": "search indexing", "switched_from": "SQLite", "story": "Show HN: ctx 1.0 - `git blame` but for agent sessions"}, {"id": 782227251, "item_id": 48889203, "url": "https://news.ycombinator.com/item?id=48889203", "by": "probst", "date": "2026-07-13", "stance": "recommend", "quote": "a quite sophisticated search stack built around Tantivy [2]", "excerpt": "We are working on our two site-search search engines Monocle Search [0] and SearchCue [1]. The former is squarely aimed at people using Squarespace, whereas our newer offering SearchCue is aimed at anyone with a site that wants to add search. We used Meilisearch as the search backend in the beginning but have since replaced it with a quite sophisticated search stack built around Tantivy [2]. We now support crawling a", "context": "", "use_case": "search backend", "switched_from": "Meilisearch", "story": "Ask HN: What Are You Working On? (July 2026)"}, {"id": 781322551, "item_id": 48832659, "url": "https://news.ycombinator.com/item?id=48832659", "by": "brainless", "date": "2026-07-08", "stance": "recommend", "quote": "SQLite + sqlite-vec + Tantivy + a tiny embedding model will stay as my go to.", "excerpt": "I have a project on very similar lines, https://github.com/brainless/dwata, which I have not been developing for the past few months. I have been meaning to get back to it and I really like what I see on your project page. My aim is to build a truly local app using only tiny/small models. I have had really good results from Qwen 3.5 1B, 4B, etc. Also, Gliner or similar models for different uses. SQLite + sqlite-vec +", "context": "", "use_case": "full-text search", "switched_from": "", "story": "Show HN: Rowboat \u2013 Open-source, local-first alternative to Claude Desktop"}, {"id": 754421440, "item_id": 47151340, "url": "https://news.ycombinator.com/item?id=47151340", "by": "i3oi3", "date": "2026-02-25", "stance": "recommend", "quote": "tantivy's BM25 search is faster, more expressive, and more scalable than SQLite.", "excerpt": "Interesting approach. I just finished some work for a similar task in a different domain. One thing that surprised me: tantivy's BM25 search is faster, more expressive, and more scalable than SQLite. If you're just building a local search (or want to optimize for local FTS), I would strongly recommend looking into tantivy. If you have the resources, it would be very interesting to throw a some models (especially smar", "context": "", "use_case": "local full-text search", "switched_from": "", "story": "Show HN: Context Mode \u2013 315 KB of MCP output becomes 5.4 KB in Claude Code"}, {"id": 742931411, "item_id": 46433213, "url": "https://news.ycombinator.com/item?id=46433213", "by": "d4rkp4ttern", "date": "2025-12-30", "stance": "neutral", "quote": "Rust/Tantivy-based super-fast full-text search TUI", "excerpt": "I like that it does not require following any particular \"system\" or discipline. But having to use a non-local/proprietary memory layer is not ideal. My own fully-local, minimalistic take on this problem of \"session continuation without compaction\" is to rely on the session JSONL files directly rather than create separate \"memory\" artifacts, and seamlessly index them to enable fast full-text search. This is the idea ", "context": "", "use_case": "full-text search over sessions", "switched_from": "", "story": "Stop Claude Code from forgetting everything"}]}