TF-IDF vs. Embeddings: From Keywords to Semantic Search