Menambahkan dokumen langsung ke indeks dengan batch upload - Amazon Kendra

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

Anda dapat menambahkan dokumen langsung ke indeks menggunakan BatchPutDocumentAPI. 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.

Menambahkan dokumen ke indeks menggunakan BatchPutDocument adalah operasi asinkron. Setelah Anda memanggil BatchPutDocument API, Anda menggunakan BatchGetDocumentStatusAPI untuk memantau kemajuan pengindeksan dokumen Anda. Ketika Anda memanggil BatchGetDocumentStatus API dengan daftar ID dokumen, ia mengembalikan status dokumen. Ketika status dokumen menjadi INDEXED atau FAILED, pemrosesan dokumen selesai. Ketika statusnyaFAILED, 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 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.

catatan

Setiap ID dokumen harus unik per indeks. Anda tidak dapat membuat sumber data untuk mengindeks dokumen Anda dengan ID uniknya 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 API 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.

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

Menambahkan dokumen dengan BatchPutDocument API

Contoh berikut menambahkan gumpalan teks ke indeks dengan memanggil 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.

Untuk contoh membuat indeks menggunakan AWS CLI dan SDK, lihat Membuat indeks. Untuk mengatur CLI dan SDK, lihat Menyiapkan. 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 (\) 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

Anda dapat menambahkan dokumen langsung ke indeks Anda dari Amazon S3 bucket menggunakan BatchPutDocumentAPI. 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 BatchPutDocumentAPI 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.

Untuk contoh membuat indeks menggunakan AWS CLI dan SDK, lihat Membuat indeks. Untuk mengatur CLI dan SDK, lihat Menyiapkan. Amazon Kendra Untuk informasi tentang membuat bucket S3, lihat Amazon Simple Storage Service dokumentasi.

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("an-aws-kendra-test-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("an-aws-kendra-test-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)); } }