

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

# Menyebarkan Amazon Kendra
<a name="deploying"></a>

**catatan**  
Dukungan fitur bervariasi menurut jenis indeks dan API pencarian yang digunakan. Untuk melihat apakah fitur ini didukung untuk jenis indeks dan API penelusuran yang Anda gunakan, lihat [Jenis indeks](https://docs.aws.amazon.com/kendra/latest/dg/hiw-index-types.html).

Ketika tiba saatnya untuk menyebarkan Amazon Kendra pencarian ke situs web Anda, kami menyediakan kode sumber yang dapat Anda gunakan dengan React untuk memulai aplikasi Anda. Kode sumber disediakan tanpa biaya di bawah lisensi MIT yang dimodifikasi. Anda dapat menggunakannya apa adanya atau mengubahnya untuk kebutuhan Anda sendiri. Aplikasi React yang disediakan adalah contoh untuk membantu Anda memulai. Ini bukan aplikasi siap produksi.

Untuk menerapkan aplikasi penelusuran tanpa kode dan menghasilkan URL titik akhir ke halaman pencarian Anda dengan kontrol akses, lihat Pembuat [Amazon Kendra Pengalaman](https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html).

Contoh kode berikut menambahkan Amazon Kendra pencarian ke aplikasi web React yang ada:
+ [https://kendrasamples.s3.amazonaws.com/kendrasamples-react-app.zip](https://kendrasamples.s3.amazonaws.com/kendrasamples-react-app.zip) —Contoh file yang dapat digunakan pengembang untuk membangun pengalaman pencarian fungsional ke dalam aplikasi web React yang ada.

Contoh dimodelkan setelah halaman pencarian Amazon Kendra konsol. Mereka memiliki fitur yang sama untuk mencari dan menampilkan hasil pencarian. Anda dapat menggunakan seluruh contoh, atau Anda dapat memilih salah satu fitur untuk Anda gunakan sendiri.

Untuk melihat tiga komponen halaman pencarian di Amazon Kendra konsol, pilih ikon kode (**</>**) dari menu kanan. Arahkan kursor ke setiap bagian untuk melihat deskripsi singkat komponen dan untuk mendapatkan URL sumber komponen.

**Topics**
+ [

## Ikhtisar
](#example-overview)
+ [

## Prasyarat
](#example-prereqs)
+ [

## Menyiapkan contoh
](#example-install)
+ [

## Halaman pencarian utama
](#main-component)
+ [

## Komponen pencarian
](#search-component)
+ [

## Komponen hasil
](#results-component)
+ [

## Komponen faset
](#facets-component)
+ [

## Komponen paginasi
](#pagination-component)
+ [

# Membangun pengalaman pencarian tanpa kode
](deploying-search-experience-no-code.md)

## Ikhtisar
<a name="example-overview"></a>

Anda menambahkan kode contoh ke aplikasi web React yang ada untuk mengaktifkan pencarian. Kode contoh menyertakan file Readme dengan langkah-langkah untuk menyiapkan lingkungan pengembangan React baru. Contoh data dalam contoh kode dapat digunakan untuk menunjukkan pencarian. File pencarian dan komponen dalam kode contoh disusun sebagai berikut:
+ Halaman pencarian utama (`Search.tsx`) —Ini adalah halaman utama yang berisi semua komponen. Di sinilah Anda mengintegrasikan aplikasi Anda dengan Amazon Kendra API.
+ Search Bar—ini adalah komponen di mana pengguna memasukkan istilah pencarian dan memanggil fungsi pencarian.
+ Hasil — Ini adalah komponen yang menampilkan hasil dari. Amazon Kendra Ini memiliki tiga komponen: jawaban yang disarankan, hasil FAQ, dan dokumen yang direkomendasikan.
+ Facet—Ini adalah komponen yang menunjukkan aspek dalam hasil pencarian dan memungkinkan Anda memilih aspek untuk mempersempit pencarian.
+ Paginasi—Ini adalah komponen yang memberi paginasi respons dari. Amazon Kendra

## Prasyarat
<a name="example-prereqs"></a>

Sebelum memulai, Anda perlu melakukan hal berikut:
+ Node.js dan npm [diinstal](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). Diperlukan Node.js versi 19 atau yang lebih lama.
+ [Python 3 atau Python 2 diunduh dan diinstal.](https://www.python.org/downloads/)
+ [SDK untuk Java](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html)atau [AWS SDK untuk JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/welcome.html)untuk melakukan panggilan API ke Amazon Kendra.
+ Aplikasi web React yang ada. Kode contoh menyertakan file Readme dengan langkah-langkah tentang cara menyiapkan lingkungan pengembangan React baru, termasuk menggunakan kerangka kerja/pustaka yang diperlukan. Anda juga dapat mengikuti instruksi mulai cepat dalam [dokumentasi React tentang membuat aplikasi web React](https://create-react-app.dev/docs/getting-started).
+ Pustaka dan dependensi yang diperlukan dikonfigurasi di lingkungan pengembangan Anda. Kode contoh menyertakan file Readme yang mencantumkan pustaka dan dependensi paket yang diperlukan. Perhatikan bahwa `sass` diperlukan, seperti yang `node-sass` sudah usang. Jika sebelumnya Anda menginstal`node-sass`, hapus instalan ini dan instal`sass`.

## Menyiapkan contoh
<a name="example-install"></a>

Prosedur lengkap untuk menambahkan Amazon Kendra pencarian ke aplikasi React ada di file Readme yang disertakan dalam contoh kode.

**Untuk mulai kendrasamples-react-app menggunakan.zip**

1. Pastikan Anda telah menyelesaikan[Prasyarat](#example-prereqs), termasuk mengunduh dan menginstal Node.js dan npm.

1.  kendrasamples-react-appUnduh.zip dan unzip.

1. Buka terminal Anda dan pergi ke`aws-kendra-example-react-app/src/services/`. Buka `local-dev-credentials.json` dan berikan kredensialnya. Jangan menambahkan file ini ke repositori publik apa pun.

1. Pergi ke `aws-kendra-example-react-app` dan instal dependensi di. `package.json` Jalankan `npm install`.

1. Luncurkan versi demo aplikasi Anda di server lokal Anda. Jalankan `npm start`. Anda dapat menghentikan server lokal dengan memasukkan pada keyboard Anda`Cmd/Ctrl + C`.

1. Anda dapat mengubah port atau host (misalnya, alamat IP) dengan membuka `package.json` dan memperbarui host dan port:`"start": "HOST=[host] PORT=[port] react-scripts start"`. Jika Anda menggunakan Windows:`"start": "set HOST=[host] && set PORT=[port] && react-scripts start"`.

1. Jika Anda memiliki domain situs web terdaftar, Anda dapat menentukan ini `package.json` setelah nama aplikasi Anda. Misalnya, `"homepage": "https://mywebsite.com"`. Anda harus menjalankan `npm install` lagi untuk memperbarui dependensi baru, dan kemudian menjalankannya. `npm start`

1. Untuk membangun aplikasi, jalankan`npm build`. Unggah konten direktori build ke penyedia hosting Anda.
**Awas**  
Aplikasi React **belum** siap produksi. Ini adalah contoh penerapan aplikasi untuk Amazon Kendra pencarian.

## Halaman pencarian utama
<a name="main-component"></a>

Halaman pencarian utama (`Search.tsx`) berisi semua komponen pencarian contoh. Ini mencakup komponen bilah pencarian untuk output, komponen hasil untuk menampilkan respons dari [Query](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html) API, dan komponen pagination untuk paging melalui respons.

## Komponen pencarian
<a name="search-component"></a>

Komponen pencarian menyediakan kotak teks untuk memasukkan teks kueri. `onSearch`Fungsinya adalah hook yang memanggil fungsi utama `Search.tsx` untuk membuat panggilan Amazon Kendra [Query](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html) API.

## Komponen hasil
<a name="results-component"></a>

Komponen hasil menunjukkan respons dari `Query` API. Hasilnya ditunjukkan di tiga area terpisah.
+ Jawaban yang disarankan—Ini adalah hasil teratas yang dikembalikan oleh API. `Query` Ini berisi hingga tiga jawaban yang disarankan. Dalam respon, mereka mempunyai jenis hasil `ANSWER`.
+ Jawaban FAQ — Ini adalah hasil pertanyaan yang sering diajukan yang dikembalikan oleh tanggapan. FAQs ditambahkan ke indeks secara terpisah. Dalam respon, mereka mempunyai jenis hasil `QUESTION_ANSWER`. Untuk informasi lebih lanjut, lihat [Pertanyaan dan jawaban](https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html). 
+ Dokumen yang direkomendasikan—Ini adalah dokumen tambahan yang Amazon Kendra kembali dalam respons. Dalam tanggapan dari `Query` API, mereka memiliki tipe`DOCUMENT`.

Komponen hasil berbagi satu set komponen untuk fitur seperti penyorotan, judul, tautan, dan banyak lagi. Komponen bersama harus hadir agar komponen hasil bisa bekerja. 

## Komponen faset
<a name="facets-component"></a>

Komponen faset mencantumkan faset yang tersedia di hasil pencarian. Setiap faset mengklasifikasikan respon di sepanjang dimensi tertentu, seperti penulis. Anda dapat memperbaiki pencarian ke faset tertentu dengan memilih salah satu dari daftar.

Setelah Anda memilih facet, komponen akan memanggil `Query` dengan filter atribut yang membatasi pencarian ke dokumen yang cocok dengan faset.

## Komponen paginasi
<a name="pagination-component"></a>

Komponen pagination memungkinkan Anda untuk menampilkan hasil pencarian dari `Query` API di beberapa halaman. Ini memanggil `Query` API dengan `PageNumber` parameter `PageSize` dan untuk mendapatkan halaman hasil tertentu.

# Membangun pengalaman pencarian tanpa kode
<a name="deploying-search-experience-no-code"></a>

Anda dapat membangun dan menyebarkan aplikasi Amazon Kendra pencarian tanpa perlu kode front-end apa pun. Amazon Kendra *Experience Builder* membantu Anda membangun dan menerapkan aplikasi pencarian yang berfungsi penuh dalam beberapa klik sehingga Anda dapat segera mulai mencari. Anda dapat mendesain halaman pencarian Anda dan menyesuaikan pencarian Anda untuk menyesuaikan pengalaman dengan kebutuhan pengguna Anda. Amazon Kendra menghasilkan URL titik akhir yang unik dan sepenuhnya dihosting dari halaman pencarian Anda untuk mulai mencari dokumen Anda dan FAQs. Anda dapat dengan cepat membangun bukti konsep pengalaman pencarian Anda dan membagikannya dengan orang lain.

Anda menggunakan template pengalaman pencarian yang tersedia di builder untuk menyesuaikan pencarian Anda. Anda dapat mengundang orang lain untuk berkolaborasi dalam membangun pengalaman penelusuran Anda, atau mengevaluasi hasil penelusuran untuk tujuan penyetelan. Setelah pengalaman pencarian Anda siap bagi pengguna Anda untuk mulai mencari, Anda cukup membagikan URL endpoint yang aman.

## Cara kerja Experience Builder pencarian
<a name="how-search-experience-builder-works"></a>

Proses keseluruhan membangun pengalaman pencarian adalah sebagai berikut:

1. Anda membuat pengalaman pencarian dengan memberinya nama, deskripsi, dan memilih sumber data yang ingin Anda gunakan untuk pengalaman pencarian Anda.

1. Anda mengonfigurasi daftar pengguna dan grup Anda AWS IAM Identity Center dan kemudian menetapkan hak akses ke pengalaman penelusuran Anda. Anda termasuk diri Anda sebagai pemilik pengalaman. Untuk informasi selengkapnya, lihat [Menyediakan akses ke halaman pencarian Anda](#access-search-experience).

1. Anda membuka Amazon Kendra Experience Builder untuk merancang dan menyetel halaman pencarian Anda. Anda dapat membagikan URL titik akhir pengalaman penelusuran Anda dengan orang lain yang Anda tetapkan sendiri hak akses edit atau hak akses lihat-penelusuran.

Anda memanggil [CreateExperience](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CreateExperience.html)API untuk membuat dan mengonfigurasi pengalaman penelusuran Anda. Jika Anda menggunakan konsol, Anda memilih indeks Anda dan kemudian pilih **Pengalaman** di menu navigasi untuk mengonfigurasi pengalaman Anda.

## Rancang dan sesuaikan pengalaman pencarian Anda
<a name="design-tune-search-experience"></a>

Setelah membuat dan mengonfigurasi pengalaman penelusuran, Anda membuka pengalaman penelusuran menggunakan URL titik akhir untuk mulai menyesuaikan pencarian Anda sebagai pemilik dengan hak akses editor. Anda mengetik kueri Anda ke dalam kotak pencarian, lalu menyesuaikan pencarian Anda menggunakan opsi pengeditan di panel samping untuk melihat bagaimana penerapannya ke halaman Anda. Ketika Anda siap untuk mempublikasikan, pilih **Publish**. Anda juga dapat **beralih antara Beralih ke tampilan langsung**, untuk melihat versi terbaru yang diterbitkan dari halaman pencarian Anda, dan **Beralih ke mode build**, untuk mengedit atau menyesuaikan halaman pencarian Anda.

Berikut ini adalah cara Anda dapat menyesuaikan pengalaman pencarian Anda.

### Filter
<a name="search-experience-filter"></a>

Tambahkan pencarian segi atau filter berdasarkan atribut dokumen. Ini termasuk atribut khusus. Anda dapat menambahkan filter menggunakan bidang metadata yang dikonfigurasi sendiri. Misalnya, untuk pencarian segi menurut setiap kategori kota, gunakan atribut dokumen `_category` kustom yang berisi semua kategori kota.

### Jawaban yang disarankan
<a name="search-experience-suggested-answer"></a>

Tambahkan jawaban yang dihasilkan pembelajaran mesin ke kueri pengguna Anda. Misalnya, *'Seberapa sulit kursus ini?* ' . Amazon Kendra dapat mengambil teks yang paling relevan di semua dokumen yang mengacu pada kesulitan kursus dan menyarankan jawaban yang paling relevan.

### Pertanyaan yang Sering Diajukan
<a name="search-experience-faq"></a>

Tambahkan dokumen FAQ untuk memberikan jawaban atas pertanyaan yang sering diajukan. Misalnya, *'Berapa jam untuk menyelesaikan kursus ini?* ' . Amazon Kendra dapat menggunakan dokumen FAQ yang berisi jawaban atas pertanyaan ini dan memberikan jawaban yang benar.

### Urutkan
<a name="search-experience-sort"></a>

Tambahkan pengurutan hasil pencarian sehingga pengguna Anda dapat mengatur hasil berdasarkan relevansi, waktu yang dibuat, waktu terakhir diperbarui, dan kriteria penyortiran lainnya.

### Dokumen
<a name="search-experience-documents"></a>

Konfigurasikan bagaimana dokumen atau hasil pencarian ditampilkan di halaman pencarian Anda. Anda dapat mengonfigurasi berapa banyak hasil yang ditampilkan pada halaman, menyertakan pagination seperti nomor halaman, mengaktifkan tombol umpan balik pengguna, dan mengatur bagaimana bidang metadata dokumen ditampilkan dalam hasil pencarian.

### Bahasa
<a name="search-experience-language"></a>

Pilih bahasa untuk memfilter hasil pencarian atau dokumen dalam bahasa yang dipilih.

### Kotak pencarian
<a name="search-experience-search-box"></a>

Konfigurasikan ukuran dan teks placeholder kotak pencarian Anda, serta izinkan saran kueri.

### Penyetelan relevansi
<a name="search-experience-relevance-tuning"></a>

Tambahkan boosting ke bidang metadata dokumen untuk memberi bobot lebih pada bidang ini saat pengguna Anda mencari dokumen. Anda dapat menambahkan bobot yang dimulai dari 1 dan secara bertahap meningkat menjadi 10. Anda dapat meningkatkan teks, tanggal, dan jenis bidang numerik. Misalnya, untuk memberi `_last_updated_at` dan `_created_at` lebih banyak bobot atau kepentingan daripada bidang lain, berikan bidang ini bobot 1 hingga 10, tergantung pada kepentingannya. Anda dapat menerapkan konfigurasi penyetelan relevansi yang berbeda untuk setiap aplikasi atau pengalaman pencarian.

## Menyediakan akses ke halaman pencarian Anda
<a name="access-search-experience"></a>

Akses ke pengalaman pencarian Anda adalah melalui IAM Identity Center. Saat mengonfigurasi pengalaman penelusuran, Anda memberi orang lain yang terdaftar di direktori Pusat Identitas Anda akses ke halaman Amazon Kendra pencarian Anda. Mereka menerima email yang mengarahkan mereka untuk masuk menggunakan kredensialnya di IAM Identity Center untuk mengakses halaman pencarian. Anda harus menyiapkan Pusat Identitas IAM di tingkat organisasi atau tingkat pemegang akun di AWS Organizations. Untuk informasi selengkapnya tentang menyiapkan Pusat Identitas IAM, lihat [Memulai Pusat Identitas IAM](https://docs.aws.amazon.com/kendra/latest/dg/getting-started-aws-sso.html).

Anda mengaktifkan identitas pengguna di Pusat Identitas IAM dengan pengalaman pencarian Anda dan menetapkan izin akses *Penampil* atau *Pemilik* menggunakan API atau konsol.
+ **Penampil**: Diizinkan untuk mengeluarkan kueri, menerima jawaban yang disarankan yang relevan dengan pencarian mereka, dan menyumbangkan umpan balik mereka Amazon Kendra sehingga terus meningkatkan pencarian.
+ **Pemilik**: Diizinkan untuk menyesuaikan desain halaman pencarian, menyetel pencarian, dan menggunakan aplikasi pencarian sebagai *Penampil*. Menonaktifkan akses ke pemirsa di konsol saat ini tidak didukung.

Untuk menetapkan akses orang lain ke pengalaman pencarian Anda, pertama-tama Anda mengaktifkan identitas pengguna di Pusat Identitas IAM dengan Amazon Kendra pengalaman Anda dengan menggunakan objek. [ExperienceConfiguration](https://docs.aws.amazon.com/kendra/latest/APIReference/API_ExperienceConfiguration.html) Anda menentukan nama bidang yang berisi pengidentifikasi pengguna Anda seperti nama pengguna atau alamat email. Anda kemudian memberikan daftar pengguna akses ke pengalaman penelusuran Anda menggunakan [AssociateEntitiesToExperience](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AssociateEntitiesToExperience.html)API dan menentukan izin mereka sebagai *Penampil* atau *Pemilik* menggunakan [AssociatePersonasToEntities](https://docs.aws.amazon.com/kendra/latest/APIReference/API_AssociatePersonasToEntities.html)API. Anda menentukan setiap pengguna atau grup menggunakan [EntityConfiguration](https://docs.aws.amazon.com/kendra/latest/APIReference/API_EntityConfiguration.html)objek dan apakah pengguna atau grup tersebut adalah *Penampil* atau *Pemilik* yang menggunakan [EntityPersonaConfiguraton](https://docs.aws.amazon.com/kendra/latest/APIReference/API_EntityPersonaConfiguration.html)objek tersebut.

Untuk menetapkan akses orang lain ke pengalaman pencarian Anda menggunakan konsol, Anda harus terlebih dahulu membuat pengalaman dan mengonfirmasi identitas Anda dan bahwa Anda adalah pemilik. Kemudian Anda dapat menetapkan pengguna atau grup lain sebagai pemirsa atau pemilik. Di konsol, pilih indeks Anda dan kemudian pilih **Pengalaman** di menu navigasi. Setelah Anda membuat pengalaman Anda, Anda dapat memilih pengalaman Anda dari daftar. Buka **Manajemen akses** untuk menetapkan pengguna atau grup sebagai pemirsa atau pemilik.

## Mengkonfigurasi pengalaman pencarian
<a name="config-search-experience"></a>

Berikut ini adalah contoh mengonfigurasi atau membuat pengalaman pencarian.

------
#### [ Console ]

**Untuk membuat pengalaman Amazon Kendra pencarian**

1. Di panel navigasi kiri, di bawah **Indeks**, pilih **Pengalaman**, lalu pilih **Buat** pengalaman.

1. Pada halaman **Konfigurasi pengalaman**, masukkan nama dan deskripsi untuk pengalaman Anda, pilih sumber konten Anda, dan pilih peran IAM untuk pengalaman Anda. Untuk informasi selengkapnya tentang peran IAM, lihat peran [IAM untuk Amazon Kendra pengalaman](https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html).

1. Pada halaman **Konfirmasi identitas Anda dari Pusat Identitas**, pilih ID pengguna Anda seperti email Anda. Jika Anda tidak memiliki direktori Pusat Identitas, cukup masukkan nama lengkap dan email Anda untuk membuat direktori Pusat Identitas. Ini termasuk Anda sebagai pengguna pengalaman dan secara otomatis memberi Anda hak akses pemilik.

1. Pada halaman **Review to open Experience Builder**, tinjau detail konfigurasi Anda dan pilih **Buat pengalaman dan buka Experience Builder** untuk mulai mengedit halaman pencarian Anda.

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

**Untuk menciptakan Amazon Kendra pengalaman**

```
aws kendra create-experience \
 --name experience-name \
 --description "experience description" \
 --index-id index-id \
 --role-arn arn:aws:iam::account-id:role/role-name \
 --configuration '{"ExperienceConfiguration":[{"ContentSourceConfiguration":{"DataSourceIds":["data-source-1","data-source-2"]}, "UserIdentityConfiguration":"identity attribute name"}]}' 

aws kendra describe-experience \
 --endpoints experience-endpoint-URL(s)
```

------
#### [ Python ]

**Untuk menciptakan Amazon Kendra pengalaman**

```
import boto3
from botocore.exceptions import ClientError
import pprint
import time

kendra = boto3.client("kendra")

print("Create an experience.")

# Provide a name for the experience
name = "experience-name"
# Provide an optional description for the experience
description = "experience description"
# Provide the index ID for the experience
index_id = "index-id"
# Provide the IAM role ARN required for Amazon Kendra experiences
role_arn = "arn:aws:iam::${account-id}:role/${role-name}"
# Configure the experience
configuration = {"ExperienceConfiguration":
        [{
            "ContentSourceConfiguration":{"DataSourceIds":["data-source-1","data-source-2"]},
            "UserIdentityConfiguration":"identity attribute name"
        }]
    }

try:
    experience_response = kendra.create_experience(
        Name = name,
        Description = description,
        IndexId = index_id,
        RoleArn = role_arn,
        Configuration = configuration
    )

    pprint.pprint(experience_response)

    experience_endpoints = experience_response["Endpoints"]

    print("Wait for Amazon Kendra to create the experience.")

    while True:
        # Get the details of the experience, such as the status
        experience_description = kendra.describe_experience(
            Endpoints = experience_endpoints
        )
        status = experience_description["Status"]
        print(" Creating experience. Status: "+status)
        time.sleep(60)
        if status != "CREATING":
            break

except  ClientError as e:
        print("%s" % e)

print("Program ends.")
```

------
#### [ Java ]

**Untuk membuat sebuah Amazon Kendra**

```
package com.amazonaws.kendra;

import java.util.concurrent.TimeUnit;
import software.amazon.awssdk.services.kendra.KendraClient;
import software.amazon.awssdk.services.kendra.model.CreateExperienceRequest;
import software.amazon.awssdk.services.kendra.model.CreateExperienceResponse;
import software.amazon.awssdk.services.kendra.model.DescribeExperienceRequest;
import software.amazon.awssdk.services.kendra.model.DescribeExperienceResponse;
import software.amazon.awssdk.services.kendra.model.ExperienceStatus;


public class CreateExperienceExample {

    public static void main(String[] args) throws InterruptedException {
        System.out.println("Create an experience");
        
        String experienceName = "experience-name";
        String experienceDescription = "experience description";
        String indexId = "index-id";
        String experienceRoleArn = "arn:aws:iam::account-id:role/role-name";

        KendraClient kendra = KendraClient.builder().build();
        
        CreateExperienceRequest createExperienceRequest = CreateExperienceRequest 
            .builder()
            .name(experienceName)
            .description(experienceDescription)
            .roleArn(experienceRoleArn)
            .configuration(
                ExperienceConfiguration
                    .builder()
                    .contentSourceConfiguration(
                        ContentSourceConfiguration(
                            .builder()
                            .dataSourceIds("data-source-1","data-source-2")
                            .build()
                        )
                    )
                    .userIdentityConfiguration(
                        UserIdentityConfiguration(
                            .builder()
                            .identityAttributeName("identity-attribute-name")
                            .build()
                        )
                    ).build()
            ).build();
        
        CreateExperienceResponse createExperienceResponse = kendra.createExperience(createExperienceRequest);
        System.out.println(String.format("Experience response %s", createExperienceResponse));

        String experienceEndpoints = createExperienceResponse.endpoints();

        System.out.println(String.format("Wait for Kendra to create the experience.", experienceEndpoints));
        while (true) {
            DescribeExperienceRequest describeExperienceRequest = DescribeExperienceRequest.builder().endpoints(experienceEndpoints).build();
            DescribeExperienceResponse describeEpxerienceResponse = kendra.describeExperience(describeExperienceRequest);
            ExperienceStatus status = describeExperienceResponse.status();
            TimeUnit.SECONDS.sleep(60);
            if (status != ExperienceStatus.CREATING) {
                break;
            }
        }

        System.out.println("Experience creation is complete.");
    }
}
```

------