我正在尝试使用 Aws lambda 函数对 cloudsearch 进行上传测试。当 dynamodb 更新被触发时,该函数应该将 dynamodb 表作为 JSON 文档上传到 cloudsearch,但我收到一个错误,我试图弄清楚它是什么意思以及如何摆脱。
目前,我正在处理配置测试事件
这是 lambda 函数:
var aws = require('aws-sdk');
exports.handler = function(event,context){
var cloudsearchdomain = new aws.CloudSearchDomain({endpoint: 'doc-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.cloudsearch.amazonaws.com'});
var documents = {id : event.Records[0].dynamodb.Keys.Id.N};
documents.type = "add";
documents.fields = {
"message" : "Hello",
"id" : "100",
"name" : "name"
}
var params = {contentType: 'application/json', documents : JSON.stringify(documents) };
console.log('uploading documents to cloudsearch domain', params);
cloudsearchdomain.uploadDocuments(params, function(err, data) {
if(err) {
console.log('Error uploading documents to cloudsearch', err, err.stack); …Run Code Online (Sandbox Code Playgroud)amazon-web-services node.js amazon-dynamodb amazon-cloudsearch aws-lambda
我有一个云搜索域,其中在名为“color_f_la”的列上有索引。它是一个分面索引,是一个文字数组。它的样本值为:
[ “蓝绿” ]
我一直在试图找出文档来构建一个可以搜索特定颜色的查询,但无济于事。甚至有可能吗?
看来我错过了一些非常简单的事情,但我无法弄清楚这里有什么问题。我想上传接下来的 JSON 文件:
[{
"name": "Mark"
}]
Run Code Online (Sandbox Code Playgroud)
然后我有一个错误:
Your upload includes 1 document containing the following fields: content content_encoding content_type resourcename
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在为我的应用程序创建一个方案,我想知道我的想法是否正确
示例:电子商务网站
在DynamoDb中,我会把产品(product_id,元数据链接到S3)
S3,我会用它来存储搜索数据格式(SDF/JSON)(产品名称,产品描述,价格......等)
Amazon CloudSearch将用于索引S3中的文档,并能够搜索它们.Redis将用于缓存结果
我的计划是对的吗?s3可以成为一个好的"数据库"吗?
DynamoDb在这里甚至需要吗?