Retrieval & knowledge systems

Generate embeddings and run vector search

Choose embedding models, store vectors (pgvector/Chroma/Pinecone), run similarity and hybrid search.

~10 focused hours·intermediate

Tools: OpenAI/Cohere embeddings, pgvector, Chroma, Pinecone/Qdrant, Hybrid search (BM25 + vector)

Market relevance — share of job ads asking for this
Practice

Hybrid search over Indian consumer-tech product reviews

Use a sample dataset of Indian e-commerce product reviews (phones, appliances) and build a hybrid search system: embed reviews into pgvector or Chroma, add a BM25 keyword index, and combine both with re-ranking. Support queries like 'battery drains fast Redmi phone' that need both keyword and semantic matching.

Done when
  • At least 500 reviews embedded and indexed in a vector store (pgvector or Chroma)
  • A BM25 keyword index runs alongside vector search, with a combined re-ranked result set
  • A test set of 10 realistic queries shows hybrid search outperforming vector-only or keyword-only on relevance
  • Query latency for top-k retrieval is measured and reported (target: sub-second on the test dataset)
Prove it

Evidence a recruiter can check

  • Public GitHub repo with the indexing pipeline and a benchmark table (hybrid vs vector-only vs keyword-only)
  • Sample query results pasted in README showing retrieved chunks with relevance
  • Latency numbers for retrieval at the tested dataset size
  • Notes on embedding model choice and why
Interview

Questions you'll get asked

  1. How do you choose between pgvector, Chroma, and a managed service like Pinecone for a given project?
  2. What's the difference between exact and approximate nearest-neighbor search, and when does it matter?
  3. How would you implement hybrid search combining BM25 keyword matching with vector similarity?
  4. How do you decide on embedding dimensionality and its cost/latency/accuracy tradeoffs?
  5. How would you keep a vector index in sync as underlying documents get updated or deleted?
  6. How do you evaluate whether your embedding model is actually retrieving relevant results?
See where you stand for AI Engineer