Spring Data ElasticSearch 是否可以从响应中获取“take”字段

问题描述 投票:0回答:1

当我从 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");
java spring-boot elasticsearch spring-data-elasticsearch elasticsearch-5
1个回答
0
投票

您无法使用

ElasticsearchRestTemplate
检索该信息。正如您从代码中看到的
took
信息在SearchResponse
可用,但
SearchDocumentResponseBuilder.from(SearchResponse)
不使其可用并且只返回SearchHits。

你可以做的是子类

ElasticsearchRestTemplate
和重载(不是覆盖!)
search
方法以返回原始
SearchResponse
,这样你就可以从你的代码中调用
SearchResponse.getTook()

© www.soinside.com 2019 - 2024. All rights reserved.