

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
<a name="in-adding-documents"></a>

Mithilfe der [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument.html)API können Sie Dokumente direkt zu einem Index hinzufügen. 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](https://docs.aws.amazon.com/kendra/latest/dg/index-document-types.html).

Das Hinzufügen von Dokumenten zu einem Index mithilfe `BatchPutDocument` ist ein asynchroner Vorgang. Nachdem Sie die `BatchPutDocument` API aufgerufen haben, verwenden Sie die [BatchGetDocumentStatus](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchGetDocumentStatus)API, um den Fortschritt der Indizierung Ihrer Dokumente zu überwachen. Wenn Sie die `BatchGetDocumentStatus` API mit einer Liste von Dokumenten aufrufen IDs, gibt sie den Status des Dokuments zurück. Wenn der Status des Dokuments `INDEXED` oder ist`FAILED`, ist die Verarbeitung des Dokuments abgeschlossen. Wenn der Status lautet`FAILED`, gibt die `BatchGetDocumentStatus` API den Grund zurück, warum das Dokument nicht indexiert werden konnte.

Wenn Sie die Felder oder Attribute Ihrer Inhalte und Dokumentmetadaten während der Dokumentaufnahme ändern möchten, finden Sie weitere Informationen unter [Amazon Kendra Benutzerdefinierte](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html) Anreicherung von Dokumenten. Wenn Sie eine benutzerdefinierte Datenquelle verwenden möchten, benötigt jedes Dokument, das Sie über die `BatchPutDocument` API einreichen, eine Datenquellen-ID und eine Ausführungs-ID als Attribute oder Felder. Weitere Informationen finden Sie unter [Erforderliche Attribute für benutzerdefinierte Datenquellen](https://docs.aws.amazon.com/kendra/latest/dg/data-source-custom.html#custom-required-attributes).

**Anmerkung**  
Jede Dokument-ID muss pro Index eindeutig sein. Sie können keine Datenquelle erstellen, um Ihre Dokumente eindeutig zu indizieren, IDs und dann die `BatchPutDocument` API verwenden, um dieselben Dokumente zu indizieren, oder umgekehrt. Sie können eine Datenquelle löschen und dann die `BatchPutDocument` API verwenden, um dieselben Dokumente zu indizieren, oder umgekehrt. Die Verwendung von `BatchPutDocument` und `BatchDeleteDocument` APIs in Kombination mit einem Amazon Kendra Datenquellen-Konnektor 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](https://docs.aws.amazon.com/kendra/latest/dg/data-source-custom.html).

Die folgenden Dokumente im Entwicklerhandbuch zeigen, wie Sie Dokumente direkt zu einem Index hinzufügen können.

**Topics**
+ [Dokumente mit der BatchPutDocument API hinzufügen](#in-adding-binary-doc)
+ [Dokumente aus einem S3-Bucket hinzufügen](#in-adding-plain-text)

## Dokumente mit der BatchPutDocument API hinzufügen
<a name="in-adding-binary-doc"></a>

Im folgenden Beispiel wird einem Index durch Aufrufen [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument)ein Textblock hinzugefügt. Sie können die `BatchPutDocument` API verwenden, um Dokumente direkt zu Ihrem Index hinzuzufügen. Eine Liste der von unterstützten Dokumenttypen Amazon Kendra finden Sie unter [Dokumenttypen](https://docs.aws.amazon.com/kendra/latest/dg/index-document-types.html).

Ein Beispiel für die Erstellung eines Indexes mit dem AWS CLI und SDKs finden Sie unter [Index erstellen](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html). Informationen zum Einrichten der CLI und SDKs finden Sie unter [Einrichtung Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/setup.html).

**Anmerkung**  
Dem Index hinzugefügte Dateien müssen sich in einem UTF-8-codierten Bytestream befinden.

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

------
#### [ CLI ]

Verwenden Sie in der AWS Command Line Interface den folgenden Befehl. Der Befehl ist für Linux und macOS formatiert. Wenn Sie Windows verwenden, ersetzen Sie das Unix-Zeilenfortsetzungszeichen (\$1) 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
<a name="in-adding-plain-text"></a>

Mithilfe der [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument)API können Sie Dokumente direkt aus einem Amazon S3 Bucket zu Ihrem Index hinzufügen. 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.

Die Verwendung der [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument)API zum Hinzufü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](https://docs.aws.amazon.com/kendra/latest/dg/data-source-s3.html).

Ein Beispiel für die Erstellung eines Indexes mit dem AWS CLI und SDKs finden Sie unter [Index erstellen](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html). Informationen zum Einrichten der CLI und SDKs finden Sie unter [Einrichtung Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/setup.html). Informationen zum Erstellen eines S3-Buckets finden Sie in der [Amazon Simple Storage Service Dokumentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html).

Im folgenden Beispiel werden dem Index mithilfe der `BatchPutDocument` API zwei Microsoft Word-Dokumente hinzugefügt.

------
#### [ 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));
    }
}
```

------