Lyra: Disrupting the full-text search industry with JS
summary
TypeScript full‑text search engine Lyra implements prefix trees, inverted indexes and B‑trees in pure JS, ships stemmers for 23 languages and a persistence plugin that serializes indexes (MessagePack/JSON) for restore. Benchmarks on 1 million IMDB titles report searches around 41 microseconds on single‑term queries and ~187 microseconds for multi‑term intersections. It targets every JS runtime — Cloudflare Workers, Node, Deno, Bun and React Native — bundles with Nebula and can deploy an edge search endpoint in seconds.
AI-written summary · about
chapters (15)
- 0:00Introduction
- 1:49Recreating Elasticsearch
- 3:38JavaScript over Rust and Go
- 5:03Full-text search algorithms
- 6:48Lyra in TypeScript
- 9:14Cross-runtime JavaScript
- 11:01Core API and operations
- 12:46Benchmarking search speed
- 14:08Stemming and stop words
- 15:54Snowball stemmer
- 19:22Project goals and achievements
- 20:03Data persistence
- 22:48Deployment architectures
- 23:50Deploying with Nebula
- 26:37Open source and closing
related talks
27mLyra: Disrupting full-text search industry with JavaScript
19mDisrupting Full Text Search Industry With JavaScript
41mAn introduction to search-index.js
30mIncrease text search speed & accuracy with Amazon OpenSearch Service
23mThe Faster, The Cheaper
57mOptimizing Frontend Performance of a High-Load Search
41mScaling Search and Powering Vector-Based Retrieval With OpenSea...
16mJavaScript Text Analytics for User Behavior Intelligence
