本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自訂資料來源連接器
如果存放庫尚 Amazon Kendra 未為其提供資料來源連接器,請使用自訂資料來源。即使您無法使用的 Amazon Kendra 資料來源同步存放庫,也可以使用它來查看資料來源提供 Amazon Kendra的相同執行歷程記錄指標。使用此功能可在 Amazon Kendra 資料來源與自訂資料來源之間建立一致的同步監控體驗。具體來說,使用自訂資料來源查看您使用BatchPutDocument和建立之資料來源連接器的同步指標BatchDeleteDocumentAPIs。
如需 Amazon Kendra 自訂資料來源連接器的疑難排解,請參閱疑難排解資料來。
建立自訂資料來源時,您可以完全控制如何選取要編製索引的文件。 Amazon Kendra 僅提供可用於監視資料來源同步工作的指標資訊。您必須建立並執行可判斷資料來源索引之文件的爬行者程式。
您必須使用 Do cument 物件指定文件的主要標題,並且才能_source_uri
DocumentAttribute在Query
結果的回應中DocumentURI
包含DocumentTitle
並包含在內。
您可以使用主控台或使用來建立自訂資料來源的識別碼CreateDataSourceAPI。若要使用主控台,請為資料來源指定名稱,並選擇性地指定描述和資源標籤。建立資料來源後,會顯示資料來源 ID。複製此 ID,以便在將資料來源與索引同步時使用。
您也可以使用建立自訂資料來源CreateDataSource
API。會API傳回您同步處理資料來源時要使用的 ID。使用建立CreateDataSource
API自訂資料來源時,無法設定Configuration
、RoleArn
或Schedule
參數。如果您設定這些參數, Amazon Kendra 會傳回ValidationException
例外狀況。
若要使用自訂資料來源,請建立負責更新 Amazon Kendra 索引的應用程式。應用程式取決於您建立的爬行者程式。爬行者程式會讀取儲存庫中的文件,並決定要將哪些文件傳送至 Amazon Kendra。您的應用程式應該執行下列步驟:
-
編目您的存放庫,並列出存放庫中新增、更新或刪除的文件。
-
呼叫StartDataSourceSyncJobAPI以表示同步工作正在開始。您提供資料來源 ID 以識別正在同步的資料來源。 Amazon Kendra 會傳回執行 ID,以識別特定的同步工作。
-
呼叫BatchDeleteDocumentAPI以從索引中移除文件。您可以提供資料來源 ID 和執行 ID,以識別正在同步處理的資料來源以及與此更新相關聯的工作。
-
呼叫StopDataSourceSyncJobAPI以表示同步工作結束。呼叫之後
StopDataSourceSyncJob
API,關聯的執行 ID 將不再有效。 -
ListDataSourceSyncJobsAPI使用索引和資料來源識別碼呼叫,以列出資料來源的同步工作,並查看同步工作的指標。
結束同步工作後,您可以開始新的同步工作。在將所有提交的文件新增至索引之前,可能需要一段時間。使用ListDataSourceSyncJobs
API可查看同步工作的狀態。如果針對同步工作Status
傳回的是SYNCING_INDEXING
,則某些文件仍在編製索引。當先前工作的狀態為或時,您可以啟動新的同步工FAILED
作SUCCEEDED
。
呼叫之後 StopDataSourceSyncJob
API,您無法在呼叫BatchPutDocument
或時使用同步工作識別碼BatchDeleteDocument
APIs。如果您這樣做,所有提交的文件都會在來自的回FailedDocuments
應訊息中傳回API。
必要屬性
當您將文件提交給 Amazon Kendra 使用時 BatchPutDocument
API,每個文件都需要兩個屬性來識別其所屬的資料來源和同步化執行。您必須提供下列兩個屬性,才能將自訂資料來源中的文件正確對應至 Amazon Kendra 索引:
-
_data_source_id
資料來源的識別碼。當您使用主控台或建立資料來源時,會傳回此值CreateDataSource
API。 -
_data_source_sync_job_execution_id
同步執行的識別碼。當您使用啟動索引同步處理時會傳回此選項StartDataSourceSyncJob
API。
以下是使用自訂資料來源編製文件索引JSON所需的項目。
{
"Documents": [
{
"Attributes": [
{
"Key": "_data_source_id",
"Value": {
"StringValue": "data source identifier
"
}
},
{
"Key": "_data_source_sync_job_execution_id",
"Value": {
"StringValue": "sync job identifier
"
}
}
],
"Blob": "document content
",
"ContentType": "content type
",
"Id": "document identifier
",
"Title": "document title
"
}
],
"IndexId": "index identifier
",
"RoleArn": "IAM role ARN
"
}
當您使用從索引中移除文件時 BatchDeleteDocument
API,您需要在DataSourceSyncJobMetricTarget
參數中指定下列兩個欄位:
-
DataSourceId
資料來源的識別碼。當您使用主控台或建立資料來源時,會傳回此值CreateDataSource
API。 -
DataSourceSyncJobId
同步執行的識別碼。當您使用啟動索引同步處理時會傳回此選項StartDataSourceSyncJob
API。
以下是使用從索引中刪除文檔JSON所需的BatchDeleteDocument
API。
{
"DataSourceSyncJobMetricTarget": {
"DataSourceId": "data source identifier
",
"DataSourceSyncJobId": "sync job identifier
"
},
"DocumentIdList": [
"document identifier
"
],
"IndexId": "index identifier
"
}
檢視 指標
同步工作完成後,您可以使用取DataSourceSyncJobMetricsAPI得與同步工作相關聯的指標。使用此選項可監視您的自訂資料來源同步。
如果您多次提交相同的文件 (不論是作為的一部分) BatchDeleteDocument
API,或者如果文件同時提交以進行新增和刪除,則該文件只會在量度中計算一次。BatchPutDocument
API
-
DocumentsAdded
第一次新增至索引時,使用BatchPutDocument
API與此同步工作相關聯的提交文件數目。如果在同步中提交文件以供新增多次,則該文件只會在量度中計算一次。 -
DocumentsDeleted
使用與此同步工作BatchDeleteDocument
API相關聯的提交文件數目,從索引中刪除。如果文件在同步中提交多次要刪除,則該文件只會在量度中計算一次。 -
DocumentsFailed
與此同步工作相關聯的文件編製索引失敗的數目。這些是已接受索引 Amazon Kendra ,但無法編製索引或刪除的文件。如果文件未被接受 Amazon Kendra,則會在BatchPutDocument
和的FailedDocuments
response 屬性中傳回文件的識別碼BatchDeleteDocument
APIs。 -
DocumentsModified
使用與此同步工作BatchPutDocument
API相關聯 (在 Amazon Kendra 索引中修改) 提交的已修改文件數目。
Amazon Kendra 也會在索引文件時發出 Amazon CloudWatch 量度。如需詳細資訊,請參閱Amazon Kendra 使用監視 Amazon CloudWatch。
Amazon Kendra 不會傳回自訂資料來源的DocumentsScanned
指標。它也會針對 Amazon Kendra 資料來源發出文件「度量」中列出的量度。 CloudWatch
進一步了解
若要深入瞭解如何 Amazon Kendra 與自訂資料來源整合,請參閱: