摘自文件:https://www.elastic.co/guide/en/elasticsearch/reference/7.9/shard-request-cache.html#shard-请求缓存
默认情况下,请求缓存将只缓存搜索请求的结果,其中 size=0
,所以它不会缓存命中,但会缓存 hits.total
, aggregations
,和 suggestions
.
现在使用的大多数查询(请参阅date math)都无法缓存。
使用非确定性api调用的脚本化查询,例如 Math.random()
或者 new Date()
未缓存。
但是,如何处理\u count查询_count查询的行为几乎与使用 size=0
?
我希望请求缓存也能缓存count个查询,但找不到任何有关它的信息。
1条答案
按热度按时间py49o6xq1#
如果文档没有说明问题,请转到源代码;-)
在这种情况下,如果我们看看
RestCountAction
(即处理_count
端点),我们可以看到它实际上是在创建SearchRequest
与size: 0
```a search request
|
v
SearchRequest countRequest = new SearchRequest(Strings.splitStringByCommaToArray(request.param("index")));
countRequest.indicesOptions(IndicesOptions.fromRequest(request, countRequest.indicesOptions()));
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().size(0).trackTotalHits(true);
^
|
with size 0
builder.field("count", response.getHits().getTotalHits().value);