← Back to playgrounds
6 min read

Semantic search in a support inbox

Compare a typed customer query against ten saved support tickets and watch the nearest semantic match rise to the top.

A real semantic search system turns a customer message into a vector and compares that vector with every saved support ticket. The goal is not to match exact words; it is to find the nearest meaning.

This toy example keeps those ideas in the browser. The dataset contains ten common support messages in the same domain: account access, billing, app issues, subscription changes, and refunds. Type a new query and the page calculates a lightweight concept vector for it, compares it with every stored message, and ranks the closest match.

This is a teaching model, not a production embedding stack. The feature space is hand-authored, the dataset is tiny, and the ranking is intentionally understandable. The point is to show the key retrieval pattern:

  • the query is converted into a vector,
  • each stored message is also converted into a vector,
  • the system compares them,
  • and the nearest result comes back first.

Try this:

  1. Use a paraphrase such as “I got billed twice for the same plan” and watch the duplicate-charge ticket rise to the top.
  2. Change the wording to see how concept matching differs from exact keyword matching. The same idea can still win even when the words are not identical.
  3. Try a query outside the toy vocabulary such as a random business question. The demo will explain that it could not detect enough strong concept signals.
  4. Inspect the ranked list to compare the top few results and understand why the best match is not always the one with the same words.