Semantic/Hybrid Search in the Browser

A developer explores the technical challenges and solutions for implementing semantic search directly within a web browser. The post discusses using Transformers.js and WebAssembly to run machine learning models locally without a server.
Why it matters
This demonstrates a shift toward privacy-focused, client-side AI applications that reduce infrastructure costs for small-scale web projects.
Eight years ago I added client-side search to this blog with Lunr.js . It creates an inverted index at build time, ships it as JSON, and matches strings in your browser. No server-side engine required. It has worked fine ever since, in the sense that it finds a post if you type a word that is actually in it.
Earlier this year I wrote a semantic search engine in ±250 lines of Python (the kind that lets you find the "London Beer Flood" when you search for "alcoholic beverage disaster in England," because it understands that beer is alcoholic and a flood is a disaster). That one needs a machine with sentence-transformers installed and a few hundred megabytes of PyTorch; to serve something like that in a production server requires beefy machines with expensive RAM. Not something you run in a browser tab.
Get smarter about the news
Sign up free for a feed built around what you actually care about, Dive Deeper research on any story, and the full text of every article.
Create free accountAlready have an account? Sign in