

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

# 使用 Amazon Kendra API 提交反馈
<a name="feedback-api"></a>

要使用 Amazon Kendra API 提交查询反馈，请使用 [SubmitFeedback](https://docs.aws.amazon.com/kendra/latest/APIReference/API_SubmitFeedback.html)API。要识别查询，您需要提供应用查询的索引的 ID，以及[查询](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html) API 的响应中返回的查询 ID。

以下示例说明如何使用 Amazon Kendra 提交点击和相关性反馈。您可以通过 `ClickFeedbackItems` 和 `RelevanceFeedbackItems` 数组提交多组反馈。此示例提交了一次点击和一个相关性反馈项目。反馈提交使用当前时间。

**提交搜索反馈 (AWS SDK)**

1. 您可以使用示例代码并填入所需值：

   1. `index id` – 应用查询的索引的 ID。

   1. `query id` – 要提供反馈的查询。

   1. `result id` – 要提供反馈的查询结果的 ID。查询响应包含结果 ID。

   1. `relevance value` – `RELEVANT`（查询结果相关）或 `NOT_RELEVANT`（查询结果不相关）。

------
#### [ Python ]

   ```
   import boto3
   import time
   
   kendra = boto3.client("kendra")
   
   # Provide the index ID
   index_id = "index-id"
   # Provide the query ID
   query_id = "query-id"
   # Provide the search result ID
   result_id = "result-id"
   
   # Configure the feedback item
   feedback_item = {"ClickTime": int(time.time()),
       "ResultId":result_id}
   
   # Configure the relevance value
   relevance_value = "RELEVANT"
   relevance_item = {"RelevanceValue": relevance_value,
       "ResultId": result_id
       }
   
   response = kendra.submit_feedback(
       QueryId = query_id,
       IndexId = index_id,
       ClickFeedbackItems = [feedback_item],
       RelevanceFeedbackItems = [relevance_item]
   )
   
   
   print("Submitted feedback for query: " + query_id)
   ```

------
#### [ Java ]

   ```
   package com.amazonaws.kendra;
   
   import java.time.Instant;
   import software.amazon.awssdk.services.kendra.KendraClient;
   import software.amazon.awssdk.services.kendra.model.ClickFeedback;
   import software.amazon.awssdk.services.kendra.model.RelevanceFeedback;
   import software.amazon.awssdk.services.kendra.model.RelevanceType;
   import software.amazon.awssdk.services.kendra.model.SubmitFeedbackRequest;
   import software.amazon.awssdk.services.kendra.model.SubmitFeedbackResponse;
   
   public class SubmitFeedbackExample {
       public static void main(String[] args) {
           KendraClient kendra = KendraClient.builder().build();
   
           SubmitFeedbackRequest submitFeedbackRequest = SubmitFeedbackRequest
               .builder()
               .indexId("{{IndexId}}")
               .queryId("{{QueryId}}")
               .clickFeedbackItems(
                   ClickFeedback
                   .builder()
                   .clickTime(Instant.now())
                   .resultId("{{ResultId}}")
                   .build())
               .relevanceFeedbackItems(
                   RelevanceFeedback
                   .builder()
                   .relevanceValue(RelevanceType.RELEVANT)
                   .resultId("{{ResultId}}")
                   .build())
               .build();
   
           SubmitFeedbackResponse response = kendra.submitFeedback(submitFeedbackRequest);
   
           System.out.println("Feedback is submitted");
       }
   }
   ```

------

1. 运行该代码。提交反馈后，代码会显示一条消息。