ElasticSearch 响应数据解析
2025年4月27日小于 1 分钟
ElasticSearch 响应数据解析
@PostMapping("/list")
public Result getList(@RequestBody RqParams params) throws IOException {
SearchRequest request = new SearchRequest("hotel");
request.source().query(QueryBuilders.matchQuery("all", params.getKey()));
SearchResponse response = client.search(request, RequestOptions.DEFAULT);
//解析响应的数据
//命中的数据(外层hits)
SearchHits searchHits = response.getHits();
//查询的文档数据数组对象(内层hits)
SearchHit[] hits = searchHits.getHits();
List<HotelDoc> list = new ArrayList<>();
for (SearchHit hit : hits) {
//hit是数组里的每一个对象
String sourceStr = hit.getSourceAsString();
HotelDoc hotelDoc = JSON.parseObject(sourceStr, HotelDoc.class);
list.add(hotelDoc);
}
return new Result(201L, list);
}