Can TypeScript power a search engine that queries a million titles in 41 microseconds? Discover the data structures and algorithms that make it possible.
#1about 2 minutes
Why build a full-text search engine from scratch
Building a search engine from scratch is the best way to understand the underlying data structures and algorithms that power it.
#2about 2 minutes
An overview of existing full-text search solutions
Full-text search uses text indexes to quickly find terms, with established solutions like Elasticsearch, Algolia, and newer ones like Meilisearch.
#3about 6 minutes
Preparing text data with tokenization and stemming
Raw text is processed through tokenization, lowercasing, stop-word removal, and stemming to create a clean set of searchable terms.
#4about 6 minutes
Using hash maps to create an inverted index
An inverted index, implemented with a hash map, provides constant-time (O(1)) lookups by mapping search tokens directly to the documents that contain them.
#5about 8 minutes
Optimizing storage space with prefix trees (tries)
Prefix trees, or tries, optimize memory usage by storing common prefixes of words only once, avoiding redundant data storage.
#6about 9 minutes
Implementing typo tolerance with Levenshtein distance
The Levenshtein distance algorithm uses dynamic programming to calculate the "edit distance" between two strings, enabling effective typo tolerance in search queries.
#7about 2 minutes
Introducing Lyra, a fast TypeScript search engine
Lyra is a new, open-source full-text search engine written in TypeScript that achieves microsecond search times by leveraging efficient data structures.
#8about 3 minutes
Q&A on hash functions and memory constraints
The Q&A covers the educational value of custom hash functions, handling acronyms versus stop words, and Lyra's current in-memory architecture.
Related jobs
Jobs that call for the skills explored in this talk.
Exploring TypeScript: Benefits for Large-Scale JavaScript ProjectsJavaScript is the backbone of web development, powering everything from small websites to large-scale enterprise applications. However, as projects grow in complexity, maintaining JavaScript code can become increasingly difficult. This is where TypeS...
Chris Heilmann
SEO in an AI world - Google vs. ChatGPT and survival tips for content creatorsIn the ever-evolving world of technology, the landscape of search engines and AI tools is shifting at an unprecedented pace. This transformational journey is being shaped by the rising influence of AI-powered tools like ChatGPT, which are increasingl...
Daniel Cranney
Dev Digest 159: AI Pipelines, 10x Faster TypeScript, How to InterviewInside last week’s Dev Digest 159 .
🤖 How to use LLMs to help you write code
⚡ How much electricity does AI need?
🔒 Is your API secure? Learn all about hardening it…
🟦 TypeScript switches to go and gets 10 times faster
🖼️ An image cropper in your ap...
Chris Heilmann
Dev Digest 151: SEO in an AI world, security fixes and Doomed PDFsInside last week’s Dev Digest 151 .
🔎 How ChatGPT compares to search and what that means for SEO
✂️ Job cuts across the board as companies curb DEI programs
🟨 @Microsoft releases 161 Windows security updates
⚠️ @Google’s OAuth bug endangers million...
From learning to earning
Jobs that call for the skills explored in this talk.