Elasticsearch从7.0x升级到8.0x后SearchResponse类型报错求助
解决Elasticsearch 8.x客户端SearchResponse无body属性的错误
问题原因:Elasticsearch官方JS客户端在8.x版本中重构了响应返回结构,不再将接口响应数据包裹在
body属性中,search方法直接返回的就是原7.x版本里body对应的SearchResponse实体对象。修复代码:
原代码:const { body } = await this.elasticSearch.search(x);修改为:
// 直接接收返回值作为原body内容 const body = await this.elasticSearch.search(x); // 或者直接解构你需要的字段,比如命中结果、聚合数据等 const { hits, aggregations } = await this.elasticSearch.search(x);额外说明:如果项目需要临时兼容7.x和8.x版本的客户端,可以添加简单的适配逻辑,但长期建议统一使用8.x的写法,官方已不再维护旧的响应结构。
内容的提问来源于stack exchange,提问作者Kevin C.S
相关产品推荐
相关产品推荐

