Back to Workshops
Workshop Free with sign-in

Build Your Own Search Engine

May 14, 2026
search rag llm-engineering information-retrieval

We build a search engine from scratch over DataTalks.Club Zoomcamp FAQ documents. We start with TF-IDF text search, then add cosine similarity and field boosting. From there we move through SVD/LSA and BERT embeddings to vector search. The TextSearch class built during the workshop became the basis for the minsearch library used in later RAG and agent workshops.

What we cover:

  • TF-IDF text search with sklearn, cosine similarity, field boosting and keyword filtering
  • A reusable TextSearch class that becomes minsearch
  • Vector search using SVD and NMF embeddings
  • BERT embeddings for semantic search that respects word order

Originally delivered at a DataTalks.Club live session in 2024, updated in 2026 with refreshed examples and tooling.

Links

Resources not included in the workshop materials list:

The search engine you will build

We take two approaches to search over the same FAQ data:

flowchart LR DOCS["FAQ documents DE/ML/MLOps Zoomcamp"] TEXT["Text search TF-IDF + cosine similarity field boosting + filtering"] VEC["Vector search SVD / NMF / BERT embeddings cosine similarity"] CLASS["TextSearch class (became minsearch)"] DOCS --> TEXT DOCS --> VEC TEXT --> CLASS VEC --> CLASS

Text search uses TF-IDF vectorization, weights the question field three times as much as the others, and filters by keyword. Vector search replaces sparse representations with dense embeddings (SVD, NMF, then BERT) to handle synonyms and word order. Both paths share the TextSearch class we build along the way, which combines TF-IDF across multiple fields with boost weights and keyword filters.

Sign in to access this workshop

This workshop is free — you just need an account. Sign in or create one in seconds.

Sign In
Already have an account? Sign in
or sign up with

By creating an account, you agree to our Terms of Service and Privacy Policy.

By signing up free, you'll receive community updates. You can unsubscribe at any time.