

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon Kendra JavaScript 库提交反馈
<a name="feedback-javascript"></a>

Amazon Kendra 提供了一个 JavaScript 库，您可以使用该库向搜索结果页面添加点击反馈。要使用该库，请在显示搜索结果的客户端代码中插入脚本标签，然后向结果列表中的每个文档链接添加信息。当用户选择查看文档的链接时，点击信息就会发送到 Amazon Kendra。

该库适用于支持 JavaScript 版本 ES6 /的浏览器ES2015。

## 第 1 步：在 Amazon Kendra 搜索应用程序中插入脚本标签
<a name="javascript-step-1"></a>

在呈现 Amazon Kendra 搜索结果的客户端代码中，插入一个<script>标签并添加对 JavaScript 库的引用：

```
<script>
 (function(w, d, s, c, g, n) {
   if(!w[n]) {
     w[n] = w[n] || function () {
           (w[n].q = w[n].q || []).push(arguments);
     }
     w[n].st = new Date().getTime();
     w[n].ep = g;
     var e = document.createElement(s),
         j = document.getElementsByTagName(s)[0];
     e.async = 1;
     e.src = c;
     e.type = 'module';
     j.parentNode.insertBefore(e, j);
   }
 })(window, document, 'script', 
 'library download URL', 
 'feedback endpoint',
 'kendraFeedback');
</script>
```

该脚本从 Amazon Kendra 托管 CDN 异步下载 JavaScript 库，并初始化一个名为的全局变量`kendraFeedback`，该变量允许您设置可选参数。

根据托管 Amazon Kendra 索引的区域，将*library download URL*和*feedback endpoint*替换为下表中的标识符。


| Region | 下载 URL | 反馈端点 | 
| --- | --- | --- | 
| us-east-1 | https://d2zm0lpns956f8.cloudfront.net/ksf-v1.js | https://ujxwp5s92h.execute-api.us-east-1.amazonaws.com/prod/提交 | 
| us-east-2 |  https://d2crv7fufeg244.cloudfront.net/ksf-v1.js | https://i6h76zwzf3.execute-api.us-east-2.amazonaws.com/prod/提交 | 
| us-west-2 | https://d2iezfpnpcoujy.cloudfront.net/ksf-v1.js | https://wg6nim909c.execute-api.us-west-2.amazonaws.com/prod/提交 | 
| ca-central-1 | https://d1zbkfomowykaq.cloudfront.net/ksf-v1.js | https://budi8txevj.execute-api.ca-central-1.amazonaws.com/prod/提交 | 
| eu-west-1 | https://d3gptlxtulu4us.cloudfront.net/ksf-v1.js | https://po2b11740b.execute-api.eu-west-1.amazonaws.com/prod/提交 | 
| ap-southeast-1 | https://d1vvuam7g4taoe.cloudfront.net/ksf-v1.js | https://9je5uw7t5l.execute-api.ap-southeast-1.amazonaws.com/prod/提交 | 
| ap-southeast-2 | https://dopqntoe6z0ce.cloudfront.net/ksf-v1.js | https://oovf4nvjj7.execute-api.ap-southeast-2.amazonaws.com/prod/提交 | 
| ap-south-1 | https://d1ts9ouelsmk3g.cloudfront.net/ksf-v1.js | https://k1abnmd43b.execute-api.ap-south-1.amazonaws.com/prod/提交 | 
| ap-northeast-1 | https://d3w0ybsa293kb4.cloudfront.net/ksf-v1.js | https://wg7rz0uzjh.execute-api.ap-northeast-1.amazonaws.com/prod/提交 | 
| eu-west-2 | https://d1tsrujswld1d1.cloudfront.net/ksf-v1.js | https://qi7mct3x7f.execute-api.eu-west-2.amazonaws.com/prod/提交 | 

例如，如果您的索引位于美国东部（弗吉尼亚北部）`https://d2zm0lpns956f8.cloudfront.net/ksf-v1.js`，*library download URL*则*feedback endpoint*现在是`https://ujxwp5s92h.execute-api.us-east-1.amazonaws.com/prod/submit`。

您可以为 Amazon Kendra JavaScript 库进行两个可选设置：
+ `disableCookies`— 默认情况下， Amazon Kendra 设置一个唯一标识用户的 Cookie。将其设置为 `true` 可禁用 Cookie。

  ```
  kendraFeedback('disableCookie', 'true | false');
  ```

  `searchDivClassName` - 默认情况下， Amazon Kendra 监控搜索结果页面上的所有链接是否有点击。将其设置为 `<div>` 类名可仅监视指定类中的链接。

  ```
  kendraFeedback('searchDivClassName', 'class name');
  ```

## 步骤 2：将反馈令牌添加到搜索结果中
<a name="javascript-step-2"></a>

在结果页面上，将一个名 `data-kendra-token` 的 HTML 属性添加到锚点标签或直属父 div 标签，该标签包含查询响应中指向文档的链接。例如：

```
<a href="document location" data-kendra-token="feedback token value"></a>
OR
<div data-url="document location" data-kendra-token="feedback token value"></div>
```

查询响应的 `feedbackToken` 字段中包含一个令牌。如果用户选择响应，则令牌会唯一标识该响应。将令牌的值分配给 `data-kendra-token` 属性。当用户选择结果并将其作为反馈提交给 Amazon Kendra 端点时， Amazon Kendra JavaScript 库会查找此令牌。

 Amazon Kendra JavaScript 库仅提交反馈令牌和其他元数据，例如选择结果的时间和唯一的访客 ID。

## 步骤 3：测试反馈脚本
<a name="javascript-step-3"></a>

要确保 JavaScript 库配置正确并向正确的端点发送反馈，请执行以下操作。此示例使用 Chrome 浏览器。

1. 在浏览器中打开 Web 开发者工具。在 Chrome 上，打开浏览器右上角的 **Chrome 菜单**，选择**更多工具**，然后选择**开发者工具**。

1. 确保控制台选项卡中没有与 Amazon Kendra JavaScript 库相关的错误。

1. 搜索并选择任何结果。在开发者工具的**网络**选项卡中，您会看到发送到反馈端点的请求、结果的令牌以及 200 OK 状态。