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:
- Use a paraphrase such as “I got billed twice for the same plan” and watch the duplicate-charge ticket rise to the top.
- 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.
- 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.
- 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.