gpt4 book ai didi

typescript - @types/elasticsearch SearchResponse 类型错误

转载 作者:搜寻专家 更新时间:2023-10-30 21:33:30 25 4
gpt4 key购买 nike

当我使用@nestjs/elasticsearch 的 ElasticsearchService 时,响应的结果与@types/elasticsearch 的 SearchResponse 类型不匹配,因为 SearchResponse 是一个对象,但我实际上得到了一个包含 SearchResponse 对象和 Http 状态代码的数组,确实有人知道如何关闭它吗?

例子:

[
{
...,
"aggregations": {
"backendVersions": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "1.0.0",
"doc_count": 1
}
]
}
}
},
200
]

最佳答案

@nestjs/elasticsearch的ElasticsearchService用bindNodeCallback包裹了es客户端,它在 doc 中进行了解释.

所以这样:

client.search({
index: 'my-index',
body: { foo: 'bar' }
}, (err, body, statusCode, headers) => {
if (err) console.log(err)
})

将被转换为一个可观察对象,它将发出一个值,其中包含回调中的 args 减去数组中的错误。

service.search({
index: 'my-index',
body: { foo: 'bar' }
}).subscribe(value => {
console.log(value); // [body, statusCode, headers]
});

你不能关闭它,但你可以通过 getClient() 直接使用 elasticsearch 客户端:

const searchResponse = await service.getClient().search({
index: 'my-index',
body: { foo: 'bar' }
});

还要记住会有breaking changes in @elastic/elasticsearch [7.x] :

client.search({
index: 'my-index',
body: { foo: 'bar' }
}, (err, { body, statusCode, headers, warnings }) => {
if (err) console.log(err)
});

关于typescript - @types/elasticsearch SearchResponse 类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55730408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com