【发布时间】:2020-04-07 13:01:41
【问题描述】:
我们正在运行一个带有搜索栏的 javascript 应用程序。内容可从 AWS 的 S3 存储桶中搜索。 JavaScript 应用代码:
<html>
<head>
<script src="aws-sdk-2.604.0.js"></script>
<script>
var kendra = new AWS.Kendra({
apiVersion: '2019-02-03',
// region: '*****',
accessKeyId: '*********',
secretAccessKey: '*******************'
});
function getResults() {
var searchText = document.getElementById("searchBox").value;
var params = {
IndexId: '**************************',
/* required */
QueryText: searchText,
PageNumber: '1',
PageSize: '20'
};
kendra.query(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
document.getElementById("results").innerText = data.ResultItems[0].DocumentTitle.Text;
console.log(data); // successful response
}
});
}
</script>
</head>
<body>
<h1>This is Kendra application</h1>
<input type="text" id="searchBox" />
<button onclick="getResults()">Search</button>
<div>
<b>search results</b>
<div id="results"></div>
</div>
</body>
</html>
上面的 javascript 应用程序包括一个搜索栏,它提供来自 S3 存储桶的数据。现在我们需要使用下面给出的“BatchPutDocument”服务代码上传一个新文件。上传的文档(html 或 pdf)应可在 javascript 应用程序搜索框中搜索。
注意:我们不应该直接通过 AWS s3 存储桶上传 s3 存储桶中的文件。 下面给出的代码是否有帮助或任何可用的替代代码。
var params = {
Documents: [ /* required */
{
Id: 'STRING_VALUE', /* required */
AccessControlList: [
{
Access: ALLOW | DENY, /* required */
Name: 'STRING_VALUE', /* required */
Type: USER | GROUP /* required */
},
/* more items */
],
Attributes: [
{
Key: 'STRING_VALUE', /* required */
Value: { /* required */
DateValue: new Date || 'Wed Dec 31 1969 16:00:00 GMT-0800 (PST)' || 123456789,
LongValue: 'NUMBER_VALUE',
StringListValue: [
'STRING_VALUE',
/* more items */
],
StringValue: 'STRING_VALUE'
}
},
/* more items */
],
Blob: Buffer.from('...') || 'STRING_VALUE' /* Strings will be Base-64 encoded on your behalf */,
ContentType: PDF | HTML | MS_WORD | PLAIN_TEXT | PPT,
S3Path: {
Bucket: 'STRING_VALUE', /* required */
Key: 'STRING_VALUE' /* required */
},
Title: 'STRING_VALUE'
},
/* more items */
],
IndexId: 'STRING_VALUE', /* required */
RoleArn: 'STRING_VALUE'
};
kendra.batchPutDocument(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
【问题讨论】:
标签: javascript amazon-web-services amazon-s3 amazon-kendra