

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiungere documenti direttamente a un indice con caricamento in batch
<a name="in-adding-documents"></a>

Puoi aggiungere documenti direttamente a un indice utilizzando l'[BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument.html)API. Non puoi aggiungere documenti direttamente utilizzando la console. Se usi la console, ti connetti a una fonte di dati per aggiungere documenti all'indice. I documenti possono essere aggiunti da un bucket S3 o forniti come dati binari. Per un elenco dei tipi di documenti supportati da, Amazon Kendra vedi [Tipi di](https://docs.aws.amazon.com/kendra/latest/dg/index-document-types.html) documenti.

L'aggiunta di documenti a un indice utilizzando `BatchPutDocument` è un'operazione asincrona. Dopo aver chiamato l'`BatchPutDocument`API, la usi per monitorare lo [BatchGetDocumentStatus](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchGetDocumentStatus)stato di avanzamento dell'indicizzazione dei documenti. Quando chiami l'`BatchGetDocumentStatus`API con un elenco di documenti IDs, restituisce lo stato del documento. Quando lo stato del documento è `INDEXED` o`FAILED`, l'elaborazione del documento è completa. Quando lo stato è`FAILED`, l'`BatchGetDocumentStatus`API restituisce il motivo per cui il documento non può essere indicizzato.

[Se desideri modificare i campi o gli attributi dei metadati del contenuto e del documento durante il processo di inserimento del documento, consulta Custom Document Enrichment.Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html) Se desideri utilizzare un'origine dati personalizzata, ogni documento inviato tramite l'`BatchPutDocument`API richiede un ID dell'origine dati e un ID di esecuzione come attributi o campi. Per ulteriori informazioni, consulta [Attributi obbligatori per le origini dati personalizzate](https://docs.aws.amazon.com/kendra/latest/dg/data-source-custom.html#custom-required-attributes).

**Nota**  
L'ID di ogni documento deve essere unico per indice. Non puoi creare una fonte di dati per indicizzare i tuoi documenti in modo univoco IDs e quindi utilizzare l'`BatchPutDocument`API per indicizzare gli stessi documenti o viceversa. Puoi eliminare un'origine dati e quindi utilizzare l'`BatchPutDocument`API per indicizzare gli stessi documenti o viceversa. L'utilizzo `BatchPutDocument` e `BatchDeleteDocument` APIs in combinazione con un connettore di origine Amazon Kendra dati per lo stesso set di documenti potrebbe causare incongruenze con i dati. Consigliamo invece di utilizzare il connettore di [origine dati Amazon Kendra personalizzato](https://docs.aws.amazon.com/kendra/latest/dg/data-source-custom.html).

I seguenti documenti della guida per sviluppatori mostrano come aggiungere documenti direttamente a un indice.

**Topics**
+ [Aggiungere documenti con l' BatchPutDocument API](#in-adding-binary-doc)
+ [Aggiungere documenti da un bucket S3](#in-adding-plain-text)

## Aggiungere documenti con l' BatchPutDocument API
<a name="in-adding-binary-doc"></a>

L'esempio seguente aggiunge un blob di testo a un indice [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument)chiamando. Puoi utilizzare l'`BatchPutDocument`API per aggiungere documenti direttamente all'indice. Per un elenco dei tipi di documenti supportati da, Amazon Kendra vedi [Tipi di documenti](https://docs.aws.amazon.com/kendra/latest/dg/index-document-types.html).

Per un esempio di creazione di un indice utilizzando AWS CLI and SDKs, consultate [Creazione di un indice](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html). Per configurare la CLI e SDKs, vedere [Configurazione](https://docs.aws.amazon.com/kendra/latest/dg/setup.html). Amazon Kendra

**Nota**  
I file aggiunti all'indice devono essere in un flusso di byte con codifica UTF-8.

Negli esempi seguenti, il testo con codifica UTF-8 viene aggiunto all'indice.

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

Nel AWS Command Line Interface, utilizzare il comando seguente. Il comando è formattato per Linux e macOS. Se utilizzate Windows, sostituite il carattere di continuazione della riga Unix (\$1) con un accento circonflesso (^).

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

------

## Aggiungere documenti da un bucket S3
<a name="in-adding-plain-text"></a>

Puoi aggiungere documenti direttamente all'indice da un Amazon S3 bucket utilizzando l'API. [BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument) Puoi aggiungere fino a 10 documenti nella stessa chiamata. Quando utilizzi un bucket S3, devi fornire un IAM ruolo con l'autorizzazione ad accedere al bucket che contiene i tuoi documenti. Specificate il ruolo nel parametro. `RoleArn`

L'utilizzo dell'[BatchPutDocument](https://docs.aws.amazon.com/kendra/latest/APIReference/API_BatchPutDocument)API per aggiungere documenti da un Amazon S3 bucket è un'operazione una tantum. Per mantenere un indice sincronizzato con il contenuto di un bucket, crea una fonte di dati. Amazon S3 Per ulteriori informazioni, consulta la fonte [Amazon S3 dei dati](https://docs.aws.amazon.com/kendra/latest/dg/data-source-s3.html).

Per un esempio di creazione di un indice utilizzando AWS CLI and SDKs, consulta [Creazione di un indice](https://docs.aws.amazon.com/kendra/latest/dg/create-index.html). Per configurare la CLI e SDKs, vedere [Configurazione](https://docs.aws.amazon.com/kendra/latest/dg/setup.html). Amazon Kendra[Per informazioni sulla creazione di un bucket S3, consulta la documentazione.Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)

Nell'esempio seguente, due documenti di Microsoft Word vengono aggiunti all'indice utilizzando l'`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));
    }
}
```

------