Direktes Hinzufügen von Dokumenten zu einem Index mit Batch-Upload - Amazon Kendra

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Direktes Hinzufügen von Dokumenten zu einem Index mit Batch-Upload

Mit dem können Sie Dokumente direkt zu einem Index hinzufügen BatchPutDocumentAPI. Sie können Dokumente nicht direkt über die Konsole hinzufügen. Wenn Sie die Konsole verwenden, stellen Sie eine Verbindung zu einer Datenquelle her, um Dokumente zu Ihrem Index hinzuzufügen. Dokumente können aus einem S3-Bucket hinzugefügt oder als Binärdaten bereitgestellt werden. Eine Liste der von unterstützten Dokumenttypen Amazon Kendra finden Sie unter Dokumenttypen.

Das Hinzufügen von Dokumenten zu einem Index mithilfe BatchPutDocument ist ein asynchroner Vorgang. Nachdem Sie den aufgerufen haben BatchPutDocumentAPI, verwenden Sie den, BatchGetDocumentStatusAPIum den Fortschritt der Indizierung Ihrer Dokumente zu überwachen. Wenn Sie den BatchGetDocumentStatus API mit einer Liste von Dokumenten aufrufenIDs, wird der Status des Dokuments zurückgegeben. Wenn der Status des Dokuments INDEXED oder istFAILED, ist die Verarbeitung des Dokuments abgeschlossen. Wenn der Status lautetFAILED, wird der Grund BatchGetDocumentStatus API zurückgegeben, warum das Dokument nicht indexiert werden konnte.

Wenn Sie die Felder oder Attribute für den Inhalt und die Metadaten Ihres Dokuments während der Dokumentaufnahme ändern möchten, finden Sie weitere Informationen unter Amazon Kendra Benutzerdefinierte Anreicherung von Dokumenten. Wenn Sie eine benutzerdefinierte Datenquelle verwenden möchten, BatchPutDocument API benötigt jedes Dokument, das Sie mit der einreichen, eine Datenquellen-ID und eine Ausführungs-ID als Attribute oder Felder. Weitere Informationen finden Sie unter Erforderliche Attribute für benutzerdefinierte Datenquellen.

Anmerkung

Jede Dokument-ID muss pro Index eindeutig sein. Sie können keine Datenquelle erstellen, um Ihre Dokumente eindeutig zu indizieren IDs und dann dieselben Dokumente BatchPutDocument API zu indizieren, oder umgekehrt. Sie können eine Datenquelle löschen und dann die verwenden BatchPutDocumentAPI, um dieselben Dokumente zu indizieren, oder umgekehrt. Die Verwendung von BatchPutDocument und BatchDeleteDocument APIs in Kombination mit einem Amazon Kendra Datenquellenconnector für denselben Satz von Dokumenten kann zu Inkonsistenzen mit Ihren Daten führen. Stattdessen empfehlen wir die Verwendung des Amazon Kendra benutzerdefinierten Datenquellen-Connectors.

Die folgenden Dokumente im Entwicklerhandbuch zeigen, wie Dokumente direkt zu einem Index hinzugefügt werden.

Hinzufügen von Dokumenten mit dem BatchPutDocument API

Im folgenden Beispiel wird einem Index durch Aufrufen BatchPutDocumentein Textblock hinzugefügt. Sie können den verwenden BatchPutDocumentAPI, um Dokumente direkt zu Ihrem Index hinzuzufügen. Eine Liste der von unterstützten Dokumenttypen Amazon Kendra finden Sie unter Dokumenttypen.

Ein Beispiel für die Erstellung eines Indexes mit dem AWS CLI und SDKs finden Sie unter Index erstellen. Informationen zum Einrichten von CLI und SDKs finden Sie unter Einrichten Amazon Kendra.

Anmerkung

Dem Index hinzugefügte Dateien müssen sich in einem UTF -8-Byte-Stream befinden.

In den folgenden Beispielen wird UTF -8-codierter Text zum Index hinzugefügt.

CLI

Verwenden Sie in AWS Command Line Interface der den folgenden Befehl. Der Befehl ist für Linux und macOS formatiert. Wenn Sie Windows verwenden, ersetzen Sie das Unix-Zeilenfortsetzungszeichen (\) durch ein Caret (^).

aws kendra batch-put-document \ --index-id index-id \ --documents '{"Id":"doc-id-1", "Blob":"Amazon.com is an online retailer.", "ContentType":"PLAIN_TEXT", "Title":"Information about Amazon.com"}'
Python
import boto3 kendra = boto3.client("kendra") # Provide the index ID index_id = "index-id" # Provide the title and text title = "Information about Amazon.com" text = "Amazon.com is an online retailer." document = { "Id": "1", "Blob": text, "ContentType": "PLAIN_TEXT", "Title": title } documents = [ document ] result = kendra.batch_put_document( IndexId = index_id, Documents = documents ) print(result)
Java
package com.amazonaws.kendra; import software.amazon.awssdk.core.SdkBytes; import software.amazon.awssdk.services.kendra.KendraClient; import software.amazon.awssdk.services.kendra.model.BatchPutDocumentRequest; import software.amazon.awssdk.services.kendra.model.BatchPutDocumentResponse; import software.amazon.awssdk.services.kendra.model.ContentType; import software.amazon.awssdk.services.kendra.model.Document; public class AddDocumentsViaAPIExample { public static void main(String[] args) { KendraClient kendra = KendraClient.builder().build(); String indexId = "yourIndexId"; Document testDoc = Document .builder() .title("The title of your document") .id("a_doc_id") .blob(SdkBytes.fromUtf8String("your text content")) .contentType(ContentType.PLAIN_TEXT) .build(); BatchPutDocumentRequest batchPutDocumentRequest = BatchPutDocumentRequest .builder() .indexId(indexId) .documents(testDoc) .build(); BatchPutDocumentResponse result = kendra.batchPutDocument(batchPutDocumentRequest); System.out.println(String.format("BatchPutDocument Result: %s", result)); } }

Dokumente aus einem S3-Bucket hinzufügen

Mit dem können Sie Dokumente direkt aus einem Amazon S3 Bucket zu Ihrem Index hinzufügen BatchPutDocumentAPI. Sie können im selben Aufruf bis zu 10 Dokumente hinzufügen. Wenn Sie einen S3-Bucket verwenden, müssen Sie eine IAM Rolle mit der Berechtigung für den Zugriff auf den Bucket angeben, der Ihre Dokumente enthält. Sie geben die Rolle im RoleArn Parameter an.

Das BatchPutDocumentAPIHinzufügen von Dokumenten aus einem Amazon S3 Bucket ist ein einmaliger Vorgang. Um einen Index mit dem Inhalt eines Buckets zu synchronisieren, erstellen Sie eine Amazon S3 Datenquelle. Weitere Informationen finden Sie unter Amazon S3 Datenquelle.

Ein Beispiel für die Erstellung eines Indexes mit dem AWS CLI und SDKs finden Sie unter Index erstellen. Informationen zum Einrichten von CLI und SDKs finden Sie unter Einrichten Amazon Kendra. Informationen zum Erstellen eines S3-Buckets finden Sie in der Amazon Simple Storage Service Dokumentation.

Im folgenden Beispiel werden dem Index zwei Microsoft Word-Dokumente mithilfe von hinzugefügt BatchPutDocumentAPI.

Python
import boto3 kendra = boto3.client("kendra") # Provide the index ID index_id = "index-id" # Provide the IAM role ARN required to index documents in an S3 bucket role_arn = "arn:aws:iam::${acccountID}:policy/${roleName}" doc1_s3_file_data = { "Bucket": "bucket-name", "Key": "document1.docx" } doc1_document = { "S3Path": doc1_s3_file_data, "Title": "Document 1 title", "Id": "doc_1" } doc2_s3_file_data = { "Bucket": "bucket-name", "Key": "document2.docx" } doc2_document = { "S3Path": doc2_s3_file_data, "Title": "Document 2 title", "Id": "doc_2" } documents = [ doc1_document, doc2_document ] result = kendra.batch_put_document( Documents = documents, IndexId = index_id, RoleArn = role_arn ) print(result)
Java
package com.amazonaws.kendra; import software.amazon.awssdk.services.kendra.KendraClient; import software.amazon.awssdk.services.kendra.model.BatchPutDocumentRequest; import software.amazon.awssdk.services.kendra.model.BatchPutDocumentResponse; import software.amazon.awssdk.services.kendra.model.Document; import software.amazon.awssdk.services.kendra.model.S3Path; public class AddFilesFromS3Example { public static void main(String[] args) { KendraClient kendra = KendraClient.builder().build(); String indexId = "yourIndexId"; String roleArn = "yourIndexRoleArn"; Document pollyDoc = Document .builder() .s3Path( S3Path.builder() .bucket("amzn-s3-demo-bucket") .key("What is Amazon Polly.docx") .build()) .title("What is Amazon Polly") .id("polly_doc_1") .build(); Document rekognitionDoc = Document .builder() .s3Path( S3Path.builder() .bucket("amzn-s3-demo-bucket") .key("What is Amazon Rekognition.docx") .build()) .title("What is Amazon rekognition") .id("rekognition_doc_1") .build(); BatchPutDocumentRequest batchPutDocumentRequest = BatchPutDocumentRequest .builder() .indexId(indexId) .roleArn(roleArn) .documents(pollyDoc, rekognitionDoc) .build(); BatchPutDocumentResponse result = kendra.batchPutDocument(batchPutDocumentRequest); System.out.println(String.format("BatchPutDocument result: %s", result)); } }