Cache vs Indexação

Qual é a diferença real entre uma solução de cache e uma solução de indexação? Parece-me que uma solução de indexação é de fato armazenada em cache com a capacidade de executar consultas de pesquisa (como: Pesquisa Elástica). Haveria alguma razão real para usar uma solução de cache e uma solução de indexação no mesmo projeto ou a solução de indexação basicamente torna qualquer outro cache redundante?

Exemplo: digamos que eu use o NEST para ElasticSearch, que armazenaria e retornaria POCOs; se eu consultar o ElasticSearch e o POCO retornar para mim, isso não é considerado como um objeto em cache retornado do ElasticSearch?

No momento, eu armazeno dados em um cache usando uma interface ICacheManager que tenho .. algo como isto:

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

Isso se tornaria redundante com o ElasticSearch?

EDITAR

Obrigado a todos pelas respostas. Estou totalmente ciente do que é um cache e já entendi a idéia geral por trás de um índice para pesquisa textual, então estava realmente me perguntando se o índice já dobra como cache e, portanto, tornaria qualquer outro cache redundante. Afinal, eu não gostaria de manter 2 caches na memória (exemplo: ElasticSearch + Redis) quando alguém faria bem. Eu acho que tenho uma idéia melhor agora; especialmente quando percebi que nem todos os campos são sempre armazenados no índice e, portanto, precisamos obter o objeto de um cache ou direto do banco de dados de qualquer maneira - pelo menos em alguns casos. Obrigado a todos!

questionAnswers(3)

yourAnswerToTheQuestion