当我从 elasticsearch 查询时,我得到响应:
{
"took": 16,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
是否可以使用 spring data elasticsearch 获取“take”值?
编辑:
这就是我们向 elasticsearch 查询的方式:
SearchHits<SearchPo> findByAllAttributes(String searchText) {
return elasticsearchRestTemplate.search(buildHeaderSearchQuery(searchText),
SearchPo.class, IndexCoordinates.of("search");
您无法使用
ElasticsearchRestTemplate
检索该信息。正如您从代码中看到的,took
信息在SearchResponse
内可用,但SearchDocumentResponseBuilder.from(SearchResponse)
不使其可用并且只返回SearchHits。
你可以做的是子类
ElasticsearchRestTemplate
和重载(不是覆盖!)search
方法以返回原始SearchResponse
,这样你就可以从你的代码中调用SearchResponse.getTook()
。