

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menambahkan dokumen langsung ke indeks dengan batch upload
<a name="in-adding-documents"></a>

Anda dapat menambahkan dokumen langsung ke indeks menggunakan [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument.html)API. Anda tidak dapat menambahkan dokumen secara langsung menggunakan konsol tersebut. Jika Anda menggunakan konsol, Anda terhubung ke sumber data untuk menambahkan dokumen ke indeks Anda. Dokumen dapat ditambahkan dari bucket S3 atau disediakan sebagai data biner. Untuk daftar jenis dokumen yang didukung oleh Amazon Kendra lihat [Jenis dokumen](https://docs.aws.amazon.com/kendra/latest/dg/index-document-types.html).

Menambahkan dokumen ke indeks menggunakan `BatchPutDocument` adalah operasi asinkron. Setelah Anda memanggil `BatchPutDocument` API, Anda menggunakan [BatchGetDocumentStatus](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchGetDocumentStatus)API untuk memantau kemajuan pengindeksan dokumen Anda. Ketika Anda memanggil `BatchGetDocumentStatus` API dengan daftar dokumen IDs, ia mengembalikan status dokumen. Ketika status dokumen menjadi `INDEXED` atau `FAILED`, pemrosesan dokumen selesai. Ketika statusnya`FAILED`, `BatchGetDocumentStatus` API mengembalikan alasan bahwa dokumen tidak dapat diindeks.

[Jika Anda ingin mengubah bidang atau atribut metadata konten dan dokumen selama proses penyerapan dokumen, lihat Pengayaan Dokumen Kustom.Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html) Jika Anda ingin menggunakan sumber data kustom, setiap dokumen yang Anda kirimkan menggunakan `BatchPutDocument` API memerlukan ID sumber data dan ID eksekusi sebagai atribut atau bidang. Untuk informasi selengkapnya, lihat [Atribut yang diperlukan untuk sumber data kustom](https://docs.aws.amazon.com/kendra/latest/dg/data-source-custom.html#custom-required-attributes).

**catatan**  
Setiap ID dokumen harus unik per indeks. Anda tidak dapat membuat sumber data untuk mengindeks dokumen Anda dengan IDs keunikannya dan kemudian menggunakan `BatchPutDocument` API untuk mengindeks dokumen yang sama, atau sebaliknya. Anda dapat menghapus sumber data dan kemudian menggunakan `BatchPutDocument` API untuk mengindeks dokumen yang sama, atau sebaliknya. Menggunakan `BatchPutDocument` dan `BatchDeleteDocument` APIs dalam kombinasi dengan konektor sumber Amazon Kendra data untuk kumpulan dokumen yang sama dapat menyebabkan ketidakkonsistenan dengan data Anda. Sebagai gantinya, sebaiknya gunakan [konektor sumber data Amazon Kendra khusus](https://docs.aws.amazon.com/kendra/latest/dg/data-source-custom.html).

Dokumen panduan pengembang berikut menunjukkan cara menambahkan dokumen langsung ke indeks.

**Topics**
+ [Menambahkan dokumen dengan BatchPutDocument API](#in-adding-binary-doc)
+ [Menambahkan dokumen dari bucket S3](#in-adding-plain-text)

## Menambahkan dokumen dengan BatchPutDocument API
<a name="in-adding-binary-doc"></a>

Contoh berikut menambahkan gumpalan teks ke indeks dengan memanggil [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument). Anda dapat menggunakan `BatchPutDocument` API untuk menambahkan dokumen langsung ke indeks Anda. Untuk daftar jenis dokumen yang didukung oleh Amazon Kendra lihat [Jenis dokumen](https://docs.aws.amazon.com/kendra/latest/dg/index-document-types.html).

Untuk contoh membuat indeks menggunakan AWS CLI dan SDKs, lihat [Membuat indeks](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html). Untuk mengatur CLI dan SDKs, lihat [Menyiapkan](https://docs.aws.amazon.com/kendra/latest/dg/setup.html). Amazon Kendra

**catatan**  
File yang ditambahkan ke indeks harus dalam pengaliran byte yang dikodekan dengan UTF-8.

Dalam contoh berikut, teks yang dikodekan UTF-8 ditambahkan ke indeks.

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

Dalam AWS Command Line Interface, gunakan perintah berikut. Perintah ini diformat untuk Linux dan macOS. Jika menggunakan Windows, ganti karakter kelanjutan baris Unix (\$1) dengan 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));
    }
}
```

------

## Menambahkan dokumen dari bucket S3
<a name="in-adding-plain-text"></a>

Anda dapat menambahkan dokumen langsung ke indeks Anda dari Amazon S3 bucket menggunakan [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument)API. Anda dapat menambahkan hingga 10 dokumen dalam panggilan yang sama. Saat menggunakan bucket S3, Anda harus memberikan IAM peran dengan izin untuk mengakses bucket yang berisi dokumen Anda. Anda menentukan peran dalam parameter `RoleArn`.

Menggunakan [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument)API untuk menambahkan dokumen dari Amazon S3 bucket adalah operasi satu kali. Agar indeks tetap disinkronkan dengan isi bucket, buat sumber Amazon S3 data. Untuk informasi selengkapnya, lihat [sumber Amazon S3 data](https://docs.aws.amazon.com/kendra/latest/dg/data-source-s3.html).

Untuk contoh membuat indeks menggunakan AWS CLI dan SDKs, lihat [Membuat indeks](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html). Untuk mengatur CLI dan SDKs, lihat [Menyiapkan](https://docs.aws.amazon.com/kendra/latest/dg/setup.html). Amazon Kendra Untuk informasi tentang membuat bucket S3, lihat [Amazon Simple Storage Service dokumentasi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html).

Dalam contoh berikut, dua dokumen Microsoft Word ditambahkan ke indeks menggunakan `BatchPutDocument` API.

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

------