如何缓存搜索结果?

Ann*_*tor 5 lucene search caching elasticsearch

如何在stackoverflow上实现搜索结果的缓存机制?弹性搜索和 lucene 如何处理缓存?

Vin*_*han 4

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

  1. 过滤器缓存- 在这里,如果您可以卸载不参与结果评分的尽可能多的约束,则可以单独为该特定过滤器拥有段级缓存。这与更温暖的 API一起为单独应用的过滤器提供了一些基于内存的缓存
  2. 分片请求缓存 * - 您可以在查询级别缓存结果(命中除外)。这是相当新的功能,应该提供大量的缓存。但 _source 仍然需要获取碎片。

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

  • 更正您的答案 - 当前分片查询缓存*不*缓存命中。它仅缓存命中计数、聚合和建议,当“search_type”设置为“count”时也是如此 (3认同)