ElasticSearch is a distributed search engine that is a wrapper around Lucene. It stores data in segments which are mini-indexes that are immutable, with new segments regularly added and old segments merged. It maintains warm caches for old segments containing most data and cold caches for new segments.