Bagikan melalui


Membuat indeks di Azure AI Search

Dalam artikel ini, pelajari langkah-langkah untuk menentukan skema untuk indeks pencarian dan mendorongnya ke layanan pencarian. Membuat indeks menetapkan struktur data fisik pada layanan pencarian Anda. Setelah indeks ada, muat indeks sebagai tugas terpisah.

Prasyarat

  • Menulis izin sebagai Kontributor Layanan Pencarian atau kunci API admin untuk autentikasi berbasis kunci.

  • Pemahaman tentang data yang ingin Anda indeks. Indeks pencarian didasarkan pada konten eksternal yang ingin Anda buat dapat dicari. Konten yang dapat dicari disimpan sebagai bidang dalam indeks. Anda harus memiliki gambaran yang jelas tentang bidang sumber mana yang ingin Anda buat dapat dicari, diambil, dapat difilter, dapat difaset, dan dapat diurutkan di Azure AI Search. Lihat daftar periksa skema untuk panduan.

  • Anda juga harus memiliki bidang unik dalam data sumber yang dapat digunakan sebagai kunci dokumen (atau ID) dalam indeks.

  • Lokasi indeks yang stabil. Memindahkan indeks yang ada ke layanan pencarian lain tidak didukung secara langsung. Kunjungi kembali persyaratan aplikasi dan pastikan bahwa layanan pencarian Anda yang ada (kapasitas dan wilayah), cukup untuk kebutuhan Anda. Jika Anda mengambil dependensi pada layanan Azure AI atau Azure OpenAI, pilih wilayah yang menyediakan semua sumber daya yang diperlukan.

  • Terakhir, semua tingkat layanan memiliki limit indeks pada jumlah objek yang dapat Anda buat. Misalnya, jika Anda bereksperimen pada tingkat Gratis, Anda hanya dapat memiliki tiga indeks pada waktu tertentu. Dalam indeks itu sendiri, ada batasan pada vektor dan batas indeks pada jumlah bidang sederhana dan kompleks.

Kunci dokumen

Pembuatan indeks pencarian memiliki dua persyaratan: indeks harus memiliki nama unik pada layanan pencarian, dan harus memiliki kunci dokumen. Atribut boolean key pada bidang dapat diatur ke true untuk menunjukkan bidang mana yang menyediakan kunci dokumen.

Kunci dokumen adalah pengidentifikasi unik dokumen pencarian, dan dokumen pencarian adalah kumpulan bidang yang sepenuhnya menjelaskan sesuatu. Misalnya, jika Anda mengindeks himpunan data film, dokumen pencarian berisi judul, genre, dan durasi satu film. Nama film unik dalam himpunan data ini, sehingga Anda dapat menggunakan nama film sebagai kunci dokumen.

Di Azure AI Search, kunci dokumen adalah string, dan harus berasal dari nilai unik di sumber data yang menyediakan konten yang akan diindeks. Sebagai aturan umum, layanan pencarian tidak menghasilkan nilai kunci, tetapi dalam beberapa skenario (seperti pengindeks tabel Azure) layanan pencarian mensintesis nilai yang ada untuk membuat kunci unik untuk dokumen yang sedang diindeks. Skenario lain adalah pengindeksan satu ke banyak untuk data yang dipotong atau dipartisi, dalam hal ini kunci dokumen dihasilkan untuk setiap gugus.

Selama pengindeksan bertahap, di mana konten baru dan yang diperbarui diindeks, dokumen masuk dengan kunci baru ditambahkan, sementara dokumen masuk dengan kunci yang ada digabungkan atau ditimpa, tergantung pada apakah bidang indeks null atau diisi.

Poin penting tentang kunci dokumen meliputi:

  • Panjang maksimum nilai dalam bidang kunci adalah 1.024 karakter.
  • Tepat satu bidang tingkat atas di setiap indeks harus dipilih sebagai bidang kunci dan harus berjenis Edm.String.
  • Default key atribut adalah false untuk bidang sederhana dan null untuk bidang kompleks.

Bidang kunci dapat digunakan untuk mencari dokumen secara langsung dan memperbarui atau menghapus dokumen tertentu. Nilai bidang kunci ditangani dengan cara peka huruf besar/kecil saat mencari atau mengindeks dokumen. Lihat Dokumen GET (REST) dan Dokumen Indeks (REST) untuk detailnya.

Daftar periksa skema

Gunakan daftar periksa ini untuk membantu keputusan desain untuk indeks pencarian Anda.

  1. Tinjau konvensi penamaan agar nama indeks dan bidang sesuai dengan aturan penamaan.

  2. Tinjau jenis data yang didukung. Jenis data memengaruhi cara bidang digunakan. Misalnya, konten numerik dapat difilter tetapi tidak dapat dicari teks lengkap. Jenis data paling umum adalah Edm.String untuk teks yang dapat dicari, yang diberi token dan dikueri menggunakan mesin cari teks lengkap. Jenis data yang paling umum untuk bidang vektor adalah Edm.Single tetapi Anda juga dapat menggunakan jenis lain.

  3. Identifikasi kunci dokumen. Kunci dokumen adalah persyaratan indeks. Ini adalah bidang string tunggal yang diisi dari bidang data sumber yang berisi nilai unik. Misalnya, jika Anda mengindeks dari Blob Storage, jalur penyimpanan metadata sering digunakan sebagai kunci dokumen karena secara unik mengidentifikasi setiap blob dalam kontainer.

  4. Identifikasi bidang di sumber data Anda yang berkontribusi konten yang dapat dicari dalam indeks.

    Konten nonvektor yang dapat dicari mencakup string pendek atau panjang yang dikueri menggunakan mesin pencari teks lengkap. Jika konten verbose (frasa kecil atau gugus yang lebih besar), lakukan eksperimen dengan penganalisis yang berbeda untuk melihat bagaimana teks ditokenisasi.

    Konten vektor yang dapat dicari dapat berupa gambar atau teks (dalam bahasa apa pun) yang ada sebagai representasi matematika. Anda dapat menggunakan jenis data sempit atau kompresi vektor untuk membuat bidang vektor lebih kecil.

    Atribut yang diatur pada bidang, seperti retrievable atau filterable, menentukan perilaku pencarian dan representasi fisik indeks Anda pada layanan pencarian. Menentukan bagaimana bidang harus dikaitkan adalah proses berulang bagi banyak pengembang. Untuk mempercepat perulangan, mulai dengan contoh data agar Anda dapat menghilangkan dan membangun kembali dengan mudah.

  5. Identifikasi bidang sumber mana yang dapat digunakan sebagai filter. Konten numerik dan bidang teks pendek, terutama yang memiliki nilai berulang, adalah pilihan yang baik. Saat bekerja dengan filter, ingatlah:

    • Filter dapat digunakan dalam kueri vektor dan nonvektor, tetapi filter itu sendiri diterapkan ke bidang alfanumerik (nonvektor) dalam indeks Anda.

    • Bidang yang dapat difilter dapat digunakan secara opsional dalam navigasi tersaring.

    • Bidang yang dapat difilter dikembalikan dalam urutan semena-mena dan tidak menjalani penilaian relevansi, jadi pertimbangkan untuk membuatnya dapat diurutkan juga.

  6. Untuk bidang vektor, tentukan konfigurasi pencarian vektor dan algoritma yang digunakan untuk membuat jalur navigasi dan mengisi ruang penyematan. Untuk informasi selengkapnya, lihat Menambahkan bidang vektor.

    Bidang vektor memiliki properti tambahan yang tidak dimiliki bidang nonvektor, seperti algoritma mana yang akan digunakan dan kompresi vektor.

    Bidang vektor menghilangkan atribut yang tidak berguna pada data vektor, seperti pengurutan, pemfilteran, dan faset.

  7. Untuk bidang nonvektor, tentukan apakah akan menggunakan penganalisis default ("analyzer": null) atau penganalisis yang berbeda. Penganalisis digunakan untuk tokenisasi bidang teks selama pengindeksan dan eksekusi kueri.

    Untuk string multibahasa, pertimbangkan penganalisis bahasa.

    Untuk string yang dipending atau karakter khusus, pertimbangkan penganalisis khusus. Salah satu contohnya adalah kata kunci yang memperlakukan seluruh konten bidang sebagai token tunggal. Perilaku ini berguna untuk data seperti kode pos, ID, dan beberapa nama produk. Untuk informasi selengkapnya, lihat Pencarian dan pola istilah parsial dengan karakter khusus.

Catatan

Pencarian teks lengkap dilakukan melalui istilah yang ditokenisasi selama pengindeksan. Jika kueri Anda gagal mengembalikan hasil yang Anda harapkan, uji tokenisasi untuk memverifikasi string yang Anda cari benar-benar ada. Anda dapat mencoba penganalisis yang berbeda pada string untuk melihat bagaimana token diproduksi untuk berbagai penganalisis.

Mengonfigurasi definisi bidang

Kumpulan bidang menentukan struktur dokumen pencarian. Semua bidang memiliki nama, jenis data, dan atribut.

Mengatur bidang sebagai dapat dicari, dapat difilter, dapat diurutkan, atau dapat difaset memiliki efek pada ukuran indeks dan performa kueri. Jangan atur atribut tersebut pada bidang yang tidak dimaksudkan untuk direferensikan dalam ekspresi kueri.

Jika bidang tidak diatur agar dapat dicari, dapat difilter, dapat diurutkan, atau dapat difaset, bidang tidak dapat direferensikan dalam ekspresi kueri apa pun. Ini diinginkan untuk bidang yang tidak digunakan dalam kueri, tetapi diperlukan dalam hasil pencarian.

REST API memiliki atribusi default berdasarkan jenis data, yang juga digunakan oleh wizard Impor di portal Azure. Azure SDK tidak memiliki default, tetapi memiliki subkelas bidang yang menggabungkan properti dan perilaku, seperti SearchableField untuk string dan SimpleField untuk primitif.

Atribusi bidang default untuk REST API dirangkum dalam tabel berikut.

Jenis Data Dapat dicari Dapat diambil Dapat difilter Facetable Dapat disortir Disimpan
Edm.String
Collection(Edm.String)
Edm.Boolean
Edm.Int32, , Edm.Int64Edm.Double
Edm.DateTimeOffset
Edm.GeographyPoint
Edm.ComplexType
Collection(Edm.Single) dan semua jenis bidang vektor lainnya ✅ atau ❌

Bidang string juga dapat dikaitkan secara opsional dengan penganalisis dan peta sinonim. Bidang jenis Edm.String yang dapat difilter, dapat diurutkan, atau dapat difaset dapat memiliki panjang paling banyak 32 kilobyte. Ini karena nilai bidang tersebut diperlakukan sebagai istilah pencarian tunggal, dan panjang maksimum istilah di Azure AI Search adalah 32 kilobyte. Jika Anda perlu menyimpan lebih banyak teks daripada ini dalam satu bidang string, Anda harus secara eksplisit mengatur dapat difilter, dapat diurutkan, dan dapat difaset ke false dalam definisi indeks Anda.

Bidang vektor harus dikaitkan dengan dimensi dan profil vektor. Default yang dapat diambil adalah true jika Anda menambahkan bidang vektor menggunakan wizard Impor dan vektorisasi di portal, jika tidak, itu salah jika Anda menggunakan REST API.

Atribut bidang dijelaskan dalam tabel berikut.

Atribut KETERANGAN
nama Harus diisi. Mengatur nama bidang, yang harus unik dalam kumpulan bidang indeks atau bidang induk.
jenis Harus diisi. Mengatur jenis data untuk bidang . Bidang bisa sederhana atau kompleks. Bidang sederhana adalah jenis primitif, seperti Edm.String untuk teks atau Edm.Int32 untuk bilangan bulat. Bidang kompleks dapat memiliki sub-bidang yang sederhana atau kompleks. Ini memungkinkan Anda untuk memodelkan objek dan array objek, yang pada gilirannya memungkinkan Anda mengunggah sebagian besar struktur objek JSON ke indeks Anda. Lihat Jenis data yang didukung untuk daftar lengkap jenis yang didukung.
kunci Harus diisi. Atur atribut ini ke true untuk menunjuk bahwa nilai bidang secara unik mengidentifikasi dokumen dalam indeks. Lihat Kunci dokumen dalam artikel ini untuk detailnya.
dapat diambil Menunjukkan apakah bidang dapat dikembalikan dalam hasil pencarian. Atur atribut ini ke false jika Anda ingin menggunakan bidang sebagai mekanisme filter, pengurutan, atau penilaian tetapi tidak ingin bidang terlihat oleh pengguna akhir. Atribut ini harus true untuk bidang kunci, dan harus null untuk bidang kompleks. Atribut ini dapat diubah pada bidang yang ada. Pengaturan yang dapat diambil true tidak menyebabkan peningkatan persyaratan penyimpanan indeks. Defaultnya adalah true untuk bidang sederhana dan null untuk bidang kompleks.
dapat dicari Menunjukkan apakah bidang dapat dicari teks lengkap dan dapat direferensikan dalam kueri pencarian. Ini berarti ia menjalani analisis leksikal seperti pemecahan kata selama pengindeksan. Jika Anda mengatur bidang yang dapat dicari ke nilai seperti "Hari cerah", secara internal bidang tersebut dinormalisasi ke token individu "cerah" dan "hari". Ini memungkinkan pencarian teks lengkap untuk istilah-istilah ini. Bidang tipe Edm.String atau Collection(Edm.String) dapat dicari secara default. Atribut ini harus false untuk bidang sederhana dari jenis data nonstring lainnya, dan harus null untuk bidang yang kompleks.

Bidang yang dapat dicari menggunakan ruang ekstra dalam indeks Anda karena Azure AI Search memproses konten bidang tersebut dan mengaturnya dalam struktur data tambahan untuk pencarian berkinerja. Jika Anda ingin menghemat ruang dalam indeks Dan Anda tidak memerlukan bidang untuk disertakan dalam pencarian, atur dapat dicari ke false. Lihat Cara kerja pencarian teks lengkap di Pencarian Azure AI untuk detailnya.
dapat difilter Menunjukkan apakah akan mengaktifkan bidang yang akan direferensikan dalam $filter kueri. Dapat difilter berbeda dari yang dapat dicari dalam bagaimana string ditangani. Bidang jenis Edm.String atau Collection(Edm.String) yang dapat difilter tidak menjalani analisis leksikal, sehingga perbandingan hanya untuk kecocokan yang tepat. Misalnya, jika Anda mengatur bidang f seperti itu ke "Hari cerah", $filter=f eq 'sunny' tidak menemukan kecocokan, tetapi $filter=f eq 'Sunny day' akan. Atribut ini harus null untuk bidang kompleks. Defaultnya adalah true untuk bidang sederhana dan null untuk bidang kompleks. Untuk mengurangi ukuran indeks, atur atribut ini ke false pada bidang yang tidak akan Anda filter.
bisa diurutkan Menunjukkan apakah akan mengaktifkan bidang yang akan direferensikan dalam $orderby ekspresi. Secara default Pencarian Azure AI mengurutkan hasil menurut skor, tetapi dalam banyak pengalaman pengguna ingin mengurutkan menurut bidang dalam dokumen. Bidang sederhana hanya dapat diurutkan jika bernilai tunggal (memiliki nilai tunggal dalam cakupan dokumen induk).

Bidang koleksi sederhana tidak dapat diurutkan, karena bidang tersebut multinilai. Subbidang sederhana koleksi kompleks juga multinilai, dan oleh karena itu tidak dapat diurutkan. Ini benar apakah itu bidang induk langsung, atau bidang leluhur, itulah koleksi kompleks. Bidang kompleks tidak dapat diurutkan dan atribut yang dapat diurutkan harus null untuk bidang tersebut. Default untuk dapat diurutkan adalah true untuk bidang sederhana bernilai tunggal, false untuk bidang sederhana multinilai, dan null untuk bidang kompleks.
facetable Menunjukkan apakah akan mengaktifkan bidang yang akan direferensikan dalam kueri faset. Biasanya digunakan dalam presentasi hasil pencarian yang mencakup hit hit berdasarkan kategori (misalnya, mencari kamera digital dan melihat hit berdasarkan merek, berdasarkan megapiksel, berdasarkan harga, dan sebagainya). Atribut ini harus null untuk bidang kompleks. Bidang tipe Edm.GeographyPoint atau Collection(Edm.GeographyPoint) tidak dapat difaset. Defaultnya adalah true untuk semua bidang sederhana lainnya. Untuk mengurangi ukuran indeks, atur atribut ini ke false pada bidang yang tidak akan Anda hadapi.
penganalisis Mengatur penganalisis leksikal untuk tokenisasi string selama operasi pengindeksan dan kueri. Nilai yang valid untuk properti ini termasuk penganalisis bahasa, penganalisis bawaan, dan penganalisis kustom. Default adalah standard.lucene. Atribut ini hanya dapat digunakan dengan bidang string yang dapat dicari, dan tidak dapat diatur bersama dengan searchAnalyzer atau indexAnalyzer. Setelah penganalisis dipilih dan bidang dibuat dalam indeks, penganalisis tidak dapat diubah untuk bidang tersebut. Harus null untuk bidang kompleks.
searchAnalyzer Atur properti ini bersama dengan indexAnalyzer untuk menentukan penganalisis leksikal yang berbeda untuk pengindeksan dan kueri. Jika Anda menggunakan properti ini, atur penganalisis ke null dan pastikan indexAnalyzer diatur ke nilai yang diizinkan. Nilai yang valid untuk properti ini termasuk penganalisis bawaan dan penganalisis kustom. Atribut ini hanya dapat digunakan dengan bidang yang dapat dicari. Penganalisis pencarian dapat diperbarui pada bidang yang sudah ada karena hanya digunakan pada waktu kueri. Harus null untuk bidang kompleks].
indexAnalyzer Atur properti ini bersama dengan searchAnalyzer untuk menentukan penganalisis leksikal yang berbeda untuk pengindeksan dan kueri. Jika Anda menggunakan properti ini, atur penganalisis ke null dan pastikan searchAnalyzer diatur ke nilai yang diizinkan. Nilai yang valid untuk properti ini termasuk penganalisis bawaan dan penganalisis kustom. Atribut ini hanya dapat digunakan dengan bidang yang dapat dicari. Setelah penganalisis indeks dipilih, penganalisis tidak dapat diubah untuk bidang tersebut. Harus null untuk bidang kompleks.
synonymMaps Daftar nama peta sinonim untuk dikaitkan dengan bidang ini. Atribut ini hanya dapat digunakan dengan bidang yang dapat dicari. Saat ini hanya satu peta sinonim per bidang yang didukung. Menetapkan peta sinonim ke bidang memastikan bahwa istilah kueri yang menargetkan bidang tersebut diperluas pada waktu kueri menggunakan aturan di peta sinonim. Atribut ini dapat diubah pada bidang yang ada. Harus berupa null atau koleksi kosong untuk bidang kompleks.
fields Daftar subbidang jika ini adalah bidang jenis Edm.ComplexType atau Collection(Edm.ComplexType). Harus null atau kosong untuk bidang sederhana. Lihat Cara memodelkan jenis data kompleks di Azure AI Search untuk informasi selengkapnya tentang cara dan waktu penggunaan subbidang.

Buat indeks

Saat Anda siap untuk membuat indeks, gunakan klien pencarian yang dapat mengirim permintaan. Anda dapat menggunakan API portal Azure atau REST untuk pengembangan awal dan pengujian bukti konsep, jika tidak, biasanya menggunakan Azure SDK.

Selama pengembangan, rencanakan pembangunan kembali yang sering. Karena struktur fisik dibuat dalam layanan, menghapus dan membuat ulang indeks diperlukan untuk banyak modifikasi. Anda mungkin mempertimbangkan untuk bekerja dengan subnet data Anda untuk membuat pembangunan kembali berjalan lebih cepat.

Desain indeks melalui portal menerapkan persyaratan dan aturan skema untuk jenis data tertentu, seperti melarang kemampuan pencarian teks penuh pada bidang numerik.

  1. Masuk ke portal Azure.

  2. Periksa ruang. layanan Pencarian tunduk pada jumlah maksimum indeks, bervariasi menurut tingkat layanan. Pastikan Anda memiliki ruang untuk indeks kedua.

  3. Di halaman Gambaran Umum layanan pencarian, pilih salah satu opsi untuk membuat indeks pencarian:

    • Menambahkan indeks, editor yang disematkan untuk menentukan skema indeks
    • Panduan impor

    Wizard adalah alur kerja end-to-end yang membuat pengindeks, sumber data, dan indeks yang sudah selesai. Ini juga memuat data. Jika ini lebih dari yang Anda inginkan, gunakan Tambahkan indeks sebagai gantinya.

Cuplikan layar berikut menyoroti tempat Tambahkan indeks, Impor data, dan Impor dan vektorisasi data muncul di bilah perintah.

Cuplikan layar opsi untuk menambahkan indeks.

Setelah indeks dibuat, Anda bisa menemukannya lagi di halaman Indeks dari panel navigasi kiri.

Tip

Setelah membuat indeks di portal, Anda dapat menyalin representasi JSON dan menambahkannya ke kode aplikasi Anda.

Mengatur corsOptions untuk kueri lintas-asal

Skema indeks menyertakan bagian untuk pengaturan corsOptions. Secara default, JavaScript sisi klien tidak dapat memanggil API apa pun karena browser mencegah semua permintaan lintas asal. Untuk mengizinkan kueri lintas asal ke indeks Anda, aktifkan CORS (Berbagi Sumber Daya Lintas Asal) dengan mengatur atribut corsOptions . Untuk alasan keamanan, hanya API kueri yang mendukung CORS.

"corsOptions": {
  "allowedOrigins": [
    "*"
  ],
  "maxAgeInSeconds": 300

Properti berikut dapat diatur untuk CORS:

  • allowedOrigins (diperlukan): Ini adalah daftar asal yang diizinkan mengakses indeks Anda. Kode JavaScript yang dilayani dari asal ini diizinkan untuk mengkueri indeks Anda (dengan asumsi pemanggil menyediakan kunci yang valid atau memiliki izin). Setiap asal biasanya dari bentuk protocol://<fully-qualified-domain-name>:<port> meskipun <port> sering kali dihilangkan. Untuk informasi selengkapnya, lihat Berbagi sumber daya lintas asal (Wikipedia).

    Jika Anda ingin mengizinkan akses ke semua asal, sertakan * sebagai item tunggal dalam array allowedOrigins. Ini bukan praktik yang direkomendasikan untuk layanan pencarian produksi tetapi sering kali berguna untuk pengembangan dan penelusuran kesalahan.

  • maxAgeInSeconds (opsional): Browser menggunakan nilai ini untuk menentukan durasi (dalam detik) untuk membuat cache respons preflight CORS. Nilai harus bilangan bulat non-negatif. Periode cache yang lebih lama memberikan performa yang lebih baik, tetapi memperpanjang jumlah waktu yang perlu diterapkan oleh kebijakan CORS. Jika nilai ini tidak diatur, durasi default lima menit akan digunakan.

Pembaruan yang diizinkan pada indeks yang ada

Buat Indeks membuat struktur data fisik (file dan indeks terbalik) pada layanan pencarian Anda. Setelah indeks dibuat, kemampuan Anda untuk memengaruhi perubahan menggunakan Buat atau Perbarui Indeks adalah kontingen pada apakah modifikasi Anda membatalkan struktur fisik tersebut. Sebagian besar atribut bidang tidak dapat diubah setelah bidang dibuat dalam indeks Anda.

Untuk meminimalkan churn dalam kode aplikasi, Anda dapat membuat alias indeks yang berfungsi sebagai referensi stabil ke indeks pencarian. Alih-alih memperbarui kode Anda dengan nama indeks, Anda dapat memperbarui alias indeks untuk menunjuk ke versi indeks yang lebih baru.

Untuk meminimalkan churn dalam proses desain, tabel berikut menjelaskan elemen mana yang tetap dan fleksibel dalam skema. Mengubah elemen tetap memerlukan pembangunan kembali indeks, sedangkan elemen fleksibel dapat diubah kapan saja tanpa memengaruhi implementasi fisik. Untuk informasi selengkapnya, lihat Memperbarui atau membangun ulang indeks.

Elemen Dapat diperbarui?
Nama No
Tombol No
Nama dan jenis bidang No
Atribut bidang (dapat dicari, dapat difilter, dapat difaset, dapat diurutkan) No
Atribut bidang (dapat diambil) Ya
Disimpan (berlaku untuk vektor) No
Penganalisis Anda dapat menambahkan dan memodifikasi penganalisis kustom dalam indeks. Mengenai penugasan penganalisis pada bidang string, Anda hanya dapat memodifikasi searchAnalyzer. Semua penugasan dan modifikasi lainnya memerlukan pembangunan kembali.
Profil Penilaian Ya
Pemberi saran No
berbagi sumber daya lintas asal (CORS) Ya
Enkripsi Ya
Peta sinonim Ya
Konfigurasi semantik Ya

Langkah berikutnya

Gunakan tautan berikut untuk mempelajari tentang fitur khusus yang dapat ditambahkan ke indeks:

Gunakan tautan ini untuk memuat atau memperbarui indeks: