gpt4 book ai didi

javascript - AWS CloudSearch - 获取 JSON 格式的搜索结果

转载 作者:数据小太阳 更新时间:2023-10-29 06:10:22 25 4
gpt4 key购买 nike

我正在通过 node.js 中的 Lambda 函数对我的 AWS CloudSearch 域执行搜索:

我上传了这样的文档:

         {
“some_field”: “bla bla“,
“some_date_field”: 1.466719E9,
"number_field”: 4,
“some_string”: "some long string blabla"
}

然后我执行这样的搜索

   var params = {
query: 'bla bla',
};

cloudsearchdomain.search(params, function(err, data) {

if (err) {
console.log(err, err.stack); // an error occurred
context.fail(err);
}
else {
context.succeed(data); // successful response
}

});

搜索有效并记录在案here CloudSearch 返回文档点击的字段属性中的信息。这是一个例子:

  {
"status": {
"timems": 2,
"rid": “blabla”
},
"hits": {
"found": 1,
"start": 0,
"hit": [
{
"id": “452545-49B4-45C3-B94F-43524542352-454352435.6666-8532-4099-xxxx-1",
"fields": {
“some_field”: [
“bla bla“
],
“some_date_field”: [
"1.466719E9"
],
"number_field”: [
"4"
],
“some_string”: [
"some long string blabla"
],
}
}
]
}
}

如您所见,所有字段都作为数组中的字符串返回。有没有办法将结果作为 JSON 来保留所有字段的类型?

最佳答案

在向 AWS 提交有关此问题的报告后,我收到了以下回复:

您好,这实际上是预期的行为。 SDK 团队选择将“fields”属性实现为字符串键和字符串数组值的字典,以保持 AWS SDK 存在的各种语言的一致性。他们将处理各种响应格式(HTTP 请求与 SDK 方法)的责任放在客户端上。更多详情请见:https://github.com/aws/aws-sdk-js/issues/791

不幸的是,我上面描述的问题目前唯一的解决方案是:

1) 创建一个解析器,根据您的预期响应根据需要解析结果,其中考虑了您的数据类型

2) 向您的云搜索索引(文本类型)添加一个新字段,其中包含整个 json 对象/文档的字符串化版本。然后你可以只使用 JSON.parse() 来获取 JSON 格式的文档。此解决方案并不理想,因为它会在您的文档中添加不必要的文本 block ,但事实证明,它可以快速解决我的上述问题。

如果有人知道的话,我很乐意听到更多的解决方案。

关于javascript - AWS CloudSearch - 获取 JSON 格式的搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38107672/

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