我正在尝试优化查询的性能。我的查询有排序和聚合。另外,我指定from和size参数,因为我需要批量提取数据。
我正在使用请求缓存,这确保每次都不会执行聚合。但是,我还没有找到一种缓存查询数据的方法。
看着: https://www.elastic.co/guide/en/elasticsearch/reference/current/shard-request-cache.html
"默认情况下,请求缓存只会缓存搜索结果 请求size = 0,因此它不会缓存命中,但会缓存 hits.total,aggregations和advice。"
在这种情况下,有没有办法可以缓存搜索结果?
示例查询:
GET myIndex/_search?request_cache=true
{
"size": 20,
"from": 0,
"query": { ... },
"sort": { ... },
"aggregations": { ... }
}
答案 0 :(得分:0)
这个假设仍然适用。解决方法可能是发送两个查询,一个搜索查询和一个聚合查询,以便可以缓存聚合部分。
你有没有发现什么是慢的部分?搜索还是aggs?