World Congress 2022 Jun 15, 2022

Writing a full-text search engine in TypeScript

Michele Riva

Slow programming languages are a myth. Bad data structures are the reality. Watch how mastering algorithms unlocks microsecond full-text search speeds natively in TypeScript.

Pause
Mute Enter Fullscreen
#1 about 4 min

The motivation for building a search engine from scratch

Rebuilding established text tools helps develop a deeper understanding of underlying algorithms and data structures.

#2 about 1 min

Understanding the core concept of full-text search

Full-text search quickly finds content variations across database tables using text indexes without scanning entire rows.

#3 about 2 min

Reviewing existing open source full-text search tools

Popular database solutions like Elasticsearch and modern alternatives in Rust offer robust feature sets for production search configurations.

#4 about 2 min

Tokenizing strings to extract meaningful individual words

Tokenization strips special characters and removes exact duplicates to standardize text elements for easier querying.

#5 about 1 min

Removing commonly used stop words from indexed text

Eliminating frequent but low-information words reduces database size and speeds up relevant term lookups.

#6 about 3 min

Reducing terms to their roots using word stemming

Stemming resolves pluralization and conjugations into a shared common text base to capture broader intent regardless of exact grammar.

#7 about 5 min

Optimizing term retrieval using hash map structures

Storing string values through a hashing algorithm provides rapid constant-time complexity for designated index lookups.

#8 about 2 min

Accelerating term discovery via inverted memory indexes

Inverted text indexes map raw words back to document identifiers rather than scanning individual files sequentially.

#9 about 4 min

Compressing duplicate prefixes with tree data structures

Prefix trees or tries minimize wasted memory limits by grouping identical word beginnings into shared connected paths.

#10 about 3 min

Implementing prefix tree nodes natively in TypeScript

Applying typed maps and robust object structures guarantees proper element tracking during native programmatic tree node creation.

#11 about 3 min

Traversing tree paths without tail call optimization

Constructing tree search methods requires deliberate traversal logic given that JavaScript engines typically lack active tail call optimization.

#12 about 2 min

Tolerating input spelling mistakes using dynamic programming

Breaking distance calculations down into separate sub-problems mathematically adapts complex search queries for unrecognized typos or phrasing.

#13 about 7 min

Computing character variations with Levenshtein distance matrices

The Levenshtein algorithm systematically determines optimal insertion, deletion, and replacement operations to measure exact text transformations.

#14 about 2 min

Evaluating Levenshtein edit distance within prefix trees

Comparing edit distance algorithms directly across trie memory branches enables seamless typo resolution against comprehensively populated dictionaries.

#15 about 3 min

Benchmarking querying speed limits using the Lira engine

The designated open-source search runtime validates raw speed advantages achieved by pairing proper typing with highly specialized operational structures.

#16 about 4 min

Handling natural language processing rules and memory constraints

Analyzing edge cases confirms distinct approaches for acronym retention and mitigation of intense memory footprint limitations.

Matching moments

3:28 min

Implementing natural language processing algorithms in Node.js

Thomas Reiter · LIVE

49 sec

Summary of effective generative engine optimization tactics

Klaus-M. Schremser Klaus-M. Schremser · World Congress 2026 Europe

3:18 min

Demonstrating the completed multi-step search engine

Dmytro Kurets Dmytro Kurets · Europe 2026 Virtual

1:23 min

Powering website search queries with generative language algorithms

Kapil Gupta Kapil Gupta · World Congress 2023

2:05 min

Designing highly scalable hybrid AI search engines

Jan Schweiger · World Congress 2022

1:43 min

Speaker background and initial programmatic SEO motivations

Dino Lozina · World Congress 2022

Upcoming sessions on this topic

Open session

World Congress 2026 North America

September 25, 2026 · 15:30–16:00

Stage 6

Small LLM in your Browser: Huge Opportunities for Web Applications

Daniel Ostrovsky

UI/UX Architect at Payoneer | AI Architect | Full Cycle Development Expert | Public Speaker | Open Source Contributor |

Daniel Ostrovsky
Open session

World Congress 2026 North America

September 24, 2026 · 14:10–14:40

Stage 1

Anatomy of an AI Request: Where Latency and Cost Are Really Born

Dan Fu

VP of Kernels at Together AI

Dan Fu
Open session

World Congress 2026 North America

September 25, 2026 · 14:10–14:40

Stage 4

Headroom: A Context Optimization Layer for LLM Applications

Tejas Chopra

Senior Software Engineer at Netflix

Tejas Chopra
Open session

World Congress 2026 North America

September 25, 2026 · 16:50–17:20

Stage 4

Engineering Moneyball: How We Benchmarked Google vs Meta

Jirka Bachel

Co-Founder & CEO

Jirka Bachel
Open session

World Congress 2026 North America

September 24, 2026 · 16:10–16:40

Outdoor Stage

When Humans Stop Writing Code: Rethinking Languages, Compilers, and Responsibility

Simon Auer

Organizer of flutter vienna meetup and CEO of marqably

Simon Auer
Open session

World Congress 2026 North America

September 24, 2026 · 11:00–11:30

Stage 3

Making Science Larger, not just Faster

Yuval Dvir

Commercial Executive, SandboxAQ

Yuval Dvir