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 Β· WWC Europe 2026

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 Β· WWC 2023

2:05 min

Designing highly scalable hybrid AI search engines

Jan Schweiger Β· WWC 2022

1:43 min

Speaker background and initial programmatic SEO motivations

Dino Lozina Β· WWC 2022

Upcoming sessions on this topic

Open session

World Congress 2026 North America

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

Headroom: A Context Optimization Layer for LLM Applications

Tejas Chopra

Senior Software Engineer at Netflix

Tejas Chopra
Open session

World Congress 2026 North America

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

Making Science Larger, not just Faster

Yuval Dvir

Commercial Executive, SandboxAQ

Yuval Dvir
Open session

World Congress 2026 North America

Understanding LLM Architectures: Inside the Design of Modern Models

Jofia Jose Prakash

Enterprise AI Architect at American Chemical Society

Jofia Jose Prakash
Open session

World Congress 2026 North America

Building Pragmatic AI: 10 AI Features Your Users Actually Want

Jonathan "J." Tower

.NET Foundation Board | 12x Microsoft MVP | Founder & Consultant

Jonathan "J." Tower