Elasticsearch stores data in indices, splits each index into shards, and spreads the shards over the nodes of a cluster. Its building blocks are:
A node is a single running instance of Elasticsearch.
A cluster is a collection of nodes that work together.
An index is a collection of documents with similar characteristics. In relational terms it is closer to a table than to a database.
A document is the basic unit of information, stored as JSON.
A shard is a subset of an index's data. Elasticsearch distributes the shards across the nodes.
A replica is a copy of a primary shard. It adds redundancy and also serves searches, which raises search throughput.
A replica never sits on the same node as its primary. In the layout below, Index A has two primary shards and Index B has one, and every primary has a replica on another node. So losing any one node loses no data.
Cluster
├── Node 1
│ ├── Index A (Primary Shard 0)
│ └── Index A (Replica Shard 1)
├── Node 2
│ ├── Index A (Primary Shard 1)
│ └── Index B (Primary Shard 0)
└── Node 3
├── Index A (Replica Shard 0)
└── Index B (Replica Shard 0)
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.