A comprehensive overview of three main approaches to query matching in search systems: lexical (preprocessing, expansion, relaxation, translation), graph-based (knowledge graphs for query expansion), and embedding-based (self-supervised and supervised representation learning). Real-world examples from DoorDash, Uber, Yahoo, Amazon, Facebook, GrubHub, and JD illustrate how each method works in production. The post concludes that these approaches are complementary — most systems layer embeddings on top of lexical and graph methods rather than replacing them.