Michele Riva
Writing a full-text search engine in TypeScript
#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.
Matching moments
40:33 MIN
Technical SEO strategies for LLMs and new crawlers
WeAreDevelopers LIVE – SEO, GEO, AI Slop & More
25:07 MIN
Q&A on performance, interfaces, and advanced learning
Where we're going we don't need JavaScript - Programming with Type Annotations
25:24 MIN
Q&A on indexing, aggregations, and OpenSearch vs Elasticsearch
Search and aggregations made easy with OpenSearch and NodeJS
12:14 MIN
Introducing the core principles of Elasticsearch
Distributed search under the hood
25:14 MIN
Audience Q&A on patterns, typescript, and frameworks
10 must-know design patterns for JS Devs
15:33 MIN
Using Elasticsearch as a vector database for search
Harry Potter and the Elastic Semantic Search
25:02 MIN
The business and technical hurdles for AI search
ChatGPT vs Google: SEO in the Age of AI Search - Eric Enge
00:36 MIN
Understanding the core design principles of TypeScript
Advanced Typing in TypeScript
Featured Partners
Related Videos
Things I learned while writing high-performance JavaScript applications
Michele Riva
Advanced Typing in TypeScript
Lars Hupel
Lies we Tell Ourselves As Developers
Stefan Baumgartner
WeAreDevelopers LIVE - Vector Similarity Search Patterns for Efficiency and more
Chris Heilmann, Daniel Cranney, Raphael De Lio & Developer Advocate at Redis
Don't compromise on speedy delivery nor type-safety by choosing TypeScript
Jens Claes
Building software that scales with Typescript
Tal Joffe
Reducing LLM Calls with Vector Search Patterns - Raphael De Lio (Redis)
From clicks to cribs - How to find your dream home with web scraping
Alexander Lichter
From learning to earning
Jobs that call for the skills explored in this talk.
![Senior Software Engineer [TypeScript] (Prisma Postgres)](https://wearedevelopers.imgix.net/company/283ba9dbbab3649de02b9b49e6284fd9/cover/oKWz2s90Z218LE8pFthP.png?w=400&ar=3.55&fit=crop&crop=entropy&auto=compress,format)
Senior Software Engineer [TypeScript] (Prisma Postgres)
Prisma
Remote
Senior
Node.js
TypeScript
PostgreSQL

Lead Fullstack Engineer AI
Hubert Burda Media
München, Germany
€80-95K
Intermediate
React
Python
Vue.js
Langchain
+1

Senior Machine Learning Engineer (f/m/d)
MARKT-PILOT GmbH
Stuttgart, Germany
Remote
€75-90K
Senior
Python
Docker
Machine Learning





