如何缓存搜索结果?

How can search results be cached?

如何像Whosebug一样实现搜索结果的缓存机制? elasticsearch和lucene是如何处理缓存的?

截至目前,您可以在 Elasticsearch 中以两种不同的方式进行缓存

  1. Filter cache - Here if you can offload as many constraints which don't take part in scoring of results, you can have segment level caches for that particular filter alone. This along with warmer API 为单独应用的过滤器提供了相当数量的基于内存的缓存
  2. Shard request cache * - 您可以在查询级别缓存结果(命中除外)。这是一个非常新的功能,应该提供大量的缓存。但是_source还是需要分片。

在 Elasticsearch 中,您可以利用这些功能来获得大量缓存。 此外,您可以探索 Elasticsearch 外部的其他缓存选项,例如内存缓存或其他内存缓存。

保温杯

加热器已被移除。指数有了重大改进,不再需要取暖器。

在 ElasticSearch 5.4+