

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como adicionar documentos diretamente a um índice com o upload em lote.
<a name="in-adding-documents"></a>

Você pode adicionar documentos diretamente a um índice usando a [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument.html)API. Você não pode excluir documentos diretamente usando o console. Se você usa o console, você se conecta a uma fonte de dados para adicionar documentos ao seu índice. Os documentos podem ser adicionados de um bucket do S3 ou fornecidos como dados binários. Para obter uma lista dos tipos de documentos suportados pelo, Amazon Kendra consulte [Tipos de documentos](https://docs.aws.amazon.com/kendra/latest/dg/index-document-types.html).

A adição de documentos a um índice usando `BatchPutDocument` é uma operação assíncrona. Depois de chamar a `BatchPutDocument` API, você usa a [BatchGetDocumentStatus](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchGetDocumentStatus)API para monitorar o progresso da indexação de seus documentos. Quando você chama a `BatchGetDocumentStatus` API com uma lista de documentos IDs, ela retorna o status do documento. Quando o status do documento é `INDEXED` ou `FAILED`, o processamento do documento está concluído. Quando o status é `FAILED`, a API `BatchGetDocumentStatus` retorna o motivo pelo qual o documento não pôde ser indexado.

Se você quiser alterar os metadados ou os atributos e o conteúdo do documento durante o processo de absorção do documento, consulte [Enriquecimento personalizado de documentos no Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html). Se você quiser usar uma fonte de dados personalizada, cada documento enviado usando a API `BatchPutDocument` exige uma ID da fonte de dados e uma ID de execução como atributos ou campos. Para obter mais informações, consulte [Atributos obrigatórios para fontes de dados personalizadas](https://docs.aws.amazon.com/kendra/latest/dg/data-source-custom.html#custom-required-attributes).

**nota**  
Cada ID de documento deve ser exclusivo por índice. Você não pode criar uma fonte de dados para indexar seus documentos com seus documentos exclusivos IDs e, em seguida, usar a `BatchPutDocument` API para indexar os mesmos documentos ou vice-versa. Você pode criar uma fonte de dados e depois usar a API `BatchPutDocument` para indexar os mesmos documentos ou vice-versa. Usar o `BatchPutDocument` e `BatchDeleteDocument` APIs em combinação com um conector de fonte de Amazon Kendra dados para o mesmo conjunto de documentos pode causar inconsistências com seus dados. Em vez disso, recomendamos usar o [conector de fonte de dados personalizado do Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/data-source-custom.html).

Os seguintes documentos do guia do desenvolvedor mostram como adicionar documentos diretamente a um índice:

**Topics**
+ [Adicionar documentos com a BatchPutDocument API](#in-adding-binary-doc)
+ [Adicionar documentos de um bucket do S3](#in-adding-plain-text)

## Adicionar documentos com a BatchPutDocument API
<a name="in-adding-binary-doc"></a>

O exemplo a seguir adiciona uma bolha de texto a um índice [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument)chamando. É possível usar a API `BatchPutDocument` para adicionar documentos diretamente ao índice. Para obter uma lista dos tipos de documentos suportados pelo, Amazon Kendra consulte [Tipos de documentos](https://docs.aws.amazon.com/kendra/latest/dg/index-document-types.html).

Para ver um exemplo de criação de um índice usando AWS CLI e SDKs, consulte [Criação de um índice](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html). Para configurar a CLI e SDKs, consulte [Configuração](https://docs.aws.amazon.com/kendra/latest/dg/setup.html). Amazon Kendra

**nota**  
Os arquivos adicionados ao índice devem estar em um fluxo de bytes codificado UTF-8.

Nos exemplos a seguir, o texto codificado em UTF-8 é adicionado ao índice.

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

No AWS Command Line Interface, use o comando a seguir. O comando a seguir é formatado para Linux e macOS. Para Windows, substitua o caractere de continuação de linha do Unix (\$1) pelo circunflexo (^).

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

------

## Adicionar documentos de um bucket do S3
<a name="in-adding-plain-text"></a>

Você pode adicionar documentos diretamente ao seu índice a partir de um Amazon S3 bucket usando a [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument)API. Você pode inserir até 10 documentos na mesma chamada. Ao usar um bucket do S3, você deve fornecer uma IAM função com permissão para acessar o bucket que contém seus documentos. Você especifica a função com o parâmetro `RoleArn`.

Usar a [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument)API para adicionar documentos de um Amazon S3 bucket é uma operação única. Para manter um índice sincronizado com o conteúdo de um bucket, crie uma fonte de Amazon S3 dados. Para obter mais informações, consulte [fonte de dados do Amazon S3](https://docs.aws.amazon.com/kendra/latest/dg/data-source-s3.html).

Para ver um exemplo de criação de um índice usando AWS CLI e SDKs, consulte [Criação de um índice](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html). Para configurar a CLI e SDKs, consulte [Configuração](https://docs.aws.amazon.com/kendra/latest/dg/setup.html). Amazon Kendra Para obter informações sobre como criar um bucket do S3, consulte a [documentação do Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html).

No exemplo a seguir, dois documentos do Microsoft Word são adicionados ao índice usando a API `BatchPutDocument`.

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

------