Кэширование против индексации

В чем реальная разница между решением для кэширования и решением для индексирования? Мне кажется, что решение для индексирования на самом деле кешируется с возможностью запуска поисковых запросов (например, Elastic Search). Будет ли когда-либо существенная причина использовать как решение для кэширования, так и решение для индексирования в одном и том же проекте, или же решение для индексирования в основном делает любое другое кэширование избыточным?

Пример: скажем, я использую NEST для ElasticSearch, который будет хранить и возвращать POCO; если я затем запрашиваю ElasticSearch и мне возвращают POCO, не считается ли это использованием кэшированного объекта, возвращенного из ElasticSearch?

На данный момент я храню данные в кеше, используя интерфейс ICacheManager, который у меня есть ... примерно так:

return CacheManager.Get(cacheKey, () =>
{
    // return something...
});

Станет ли это излишним с ElasticSearch?

РЕДАКТИРОВАТЬ

Спасибо всем вам за ответы. Я полностью осведомлен о том, что такое кеш, и уже понял общую идею индекса для текстового поиска, поэтому мне было только интересно, будет ли индекс уже удваиваться как кеш и поэтому сделает любой другой кеш избыточным. В конце концов, я бы не хотел хранить в памяти 2 кэша (например, ElasticSearch + Redis), когда все будет хорошо. Я думаю, что теперь у меня есть идея получше; особенно когда я понял, что не все поля всегда хранятся в индексе, и поэтому нам необходимо получить объект из кэша или напрямую из базы данных в любом случае - по крайней мере, в некоторых случаях. Спасибо всем!