Design a semantic search engine like Perplexity that understands natural language queries and synthesizes answers from multiple sources.
Design the query understanding system. Consider intent classification, query rewriting, entity extraction, and handling ambiguous queries.