Semantic food search
LIVESearch food by meaning, not by exact product name.
system · NutriM8 (vector search over the food catalogue)
query → embedding → L2 normalize → HNSW cosine (Milvus) → rerank (sim + rating boost)
Type a phrase rather than a product name. "Something fizzy and sweet" should find the soft drinks even though none of them contain those words. That is the difference between keyword search and searching by meaning.
How it works
In NutriM8 every product, ingredient, recipe, and restaurant is embedded and stored in a Milvus vector index (HNSW, cosine metric, vectors L2-normalized). At query time the search embeds your text the same way, runs an approximate nearest-neighbour lookup, and gets back the closest items by cosine similarity.
Pure similarity is not quite enough on its own, so the results are re-ranked with a small popularity term derived from the product's Health Star Rating. The effect is subtle: when two foods match your query about equally, the better-rated one edges ahead. The pipeline is short on purpose: query, embed, normalize, search, re-rank. Most of the engineering is in keeping the index fresh and choosing the HNSW build parameters so recall stays high without the search getting slow.