System design interview question
Design a Distributed Search Engine (Elasticsearch-style)
A distributed search engine indexes documents into an inverted index, distributes that index across many nodes, and answers full-text and structured queries in tens of milliseconds. The core data structure (the inverted index) is simple; the hard part is sharding it, replicating it, ranking results consistently across shards, and refreshing it fast enough that new documents are searchable within seconds. This design covers Elasticsearch-style architecture: term-based index with BM25 scoring, scatter-gather query coordination, segment-based near-real-time refresh, and online resharding.
Practice this question step by step with an AI interviewer that reviews your requirements, your architecture and your trade-offs, and scores the design.