Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Bidang Dinamis di Amazon CloudSearch
Bidang dinamis menyediakan cara untuk mengindeks dokumen tanpa mengetahui terlebih dahulu bidang apa yang dikandungnya. Misalnya, pertimbangkan kasus di mana Anda ingin mencari satu set produk. Anda mungkin tidak mengetahui nama semua atribut produk yang mungkin di semua kategori produk, tetapi Anda dapat menyusun data Anda sehingga semua atribut berbasis teks disimpan di bidang yang diakhiri_t
, dan semua nilai integer disimpan di bidang yang diakhiri. _i
Dengan bidang dinamis, Anda dapat memetakan bidang atribut ke jenis bidang yang sesuai tanpa harus mengonfigurasi bidang untuk setiap atribut yang mungkin. Ini mengurangi jumlah konfigurasi yang perlu Anda lakukan di depan, dan menghilangkan kebutuhan untuk memodifikasi konfigurasi domain Anda setiap kali produk dengan atribut baru ditambahkan. Anda juga dapat menggunakan bidang dinamis untuk mengabaikan bidang baru dengan memetakannya ke bidang yang tidak dapat dicari atau dikembalikan.
Topik
Mengkonfigurasi Bidang Dinamis di Amazon CloudSearch
Anda menetapkan bidang sebagai bidang dinamis dengan menentukan wildcard (*) sebagai karakter pertama, terakhir, atau satu-satunya dalam nama bidang. Nama bidang dinamis harus dimulai atau diakhiri dengan wildcard (*). Beberapa wildcard dan wildcard yang disematkan dalam string tidak didukung.
Nama bidang dinamis mendefinisikan pola. Wildcard cocok dengan nol atau lebih karakter arbitrer. Setiap bidang yang tidak dikenal yang cocok dengan pola tersebut dikonfigurasi dengan opsi pengindeksan bidang dinamis. Bidang indeks reguler lebih diutamakan daripada bidang dinamis. Jika nama bidang dokumen cocok dengan bidang indeks reguler dan pola bidang dinamis, itu dipetakan ke bidang indeks reguler.
catatan
Opsi yang dapat Anda konfigurasikan untuk bidang dinamis sama dengan bidang statis. Demikian pula, nama bidang dokumen yang cocok dengan bidang dinamis harus memenuhi semua kriteria yang sama dengan nama bidang statis.
Misalnya, jika Anda menetapkan konvensi penamaan yang _i
ditambahkan ke nama int
bidang baru, Anda dapat menentukan bidang dinamis dengan pola *_i
yang menyetel jenis bidang ke int
dan mengonfigurasi sekumpulan opsi pengindeksan yang telah ditentukan untuk bidang baru. int
Saat Anda menambahkan bidang sepertireview_rating_i
, itu dikonfigurasi sesuai dengan *_i
opsi dan diindeks secara otomatis.
Jika bidang dokumen cocok dengan lebih dari satu pola bidang dinamis, pola pencocokan terpanjang digunakan. Jika pola memiliki panjang yang sama, bidang dinamis yang terjadi pertama kali ketika nama bidang diurutkan menurut abjad digunakan.
Anda dapat mendefinisikan* sebagai bidang dinamis untuk mencocokkan bidang apa pun yang tidak dipetakan ke bidang yang ditentukan secara eksplisit atau pola bidang dinamis yang lebih panjang. Ini berguna jika Anda ingin mengabaikan bidang yang tidak dikenal. Untuk informasi selengkapnya, lihat Menggunakan Bidang Dinamis untuk Mengabaikan Bidang yang Tidak Dikenali di Amazon CloudSearch.
Bidang dinamis dihitung terhadap jumlah total bidang yang ditentukan untuk domain. Sebuah domain dapat memiliki maksimal 200 definisi bidang, yang mencakup bidang dinamis. Namun, pola yang ditentukan oleh satu bidang dinamis biasanya cocok dengan beberapa bidang dokumen, sehingga jumlah total bidang dalam indeks Anda dapat melebihi 200. Untuk informasi selengkapnya, lihat Memahami CloudSearch Batas Amazon. Saat menggunakan bidang dinamis, perlu diingat bahwa meningkatkan jumlah bidang dalam indeks Anda secara signifikan dapat memengaruhi kinerja kueri.
Menambahkan bidang baru ke konfigurasi domain Anda dapat memengaruhi cara bidang yang dihasilkan secara dinamis divalidasi selama pengindeksan. Jika validasi gagal, pengindeksan akan gagal. Misalnya, jika Anda menentukan bidang dinamis yang disebut *_new
dan mengunggah dokumen yang berisi bidang yang disebutrating_new
, rating_new
bidang tersebut akan ditambahkan ke indeks Anda. Jika Anda kemudian secara eksplisit mengonfigurasi bidang yang disebutrating_new
, konfigurasi bidang baru itu akan digunakan untuk memvalidasi isi rating_new
bidang dokumen Anda saat Anda menjalankan pengindeksan. Jika *_new
dikonfigurasi sebagai text
bidang dan Anda mengkonfigurasi rating_new
sebagai int
bidang, validasi akan gagal jika rating_new
bidang yang ada berisi data non-integer.
Untuk informasi selengkapnya tentang mengonfigurasi bidang indeks, lihatconfigure indexing options.
Menggunakan Bidang Dinamis untuk Mengabaikan Bidang yang Tidak Dikenali di Amazon CloudSearch
Amazon CloudSearch mengharuskan Anda mengonfigurasi bidang indeks untuk setiap bidang yang terjadi dalam dokumen yang Anda indeks. Namun, dalam beberapa kasus, Anda ingin mengindeks sekumpulan bidang tertentu dan mengabaikan yang lainnya. Anda dapat menggunakan bidang dinamis untuk mengabaikan semua bidang yang tidak dikenal dengan mendefinisikan bidang literal yang disebut * dan menonaktifkan semua opsi pengindeksan untuk bidang tersebut. Setiap bidang yang tidak dikenal akan mewarisi opsi tersebut dan akan ditambahkan ke domain Anda; namun, konten bidang tidak akan dapat dicari atau dikembalikan, sehingga akan berdampak minimal pada ukuran indeks Anda. (Namun, mereka menghitung jumlah total bidang yang dikonfigurasi untuk domain.) Demikian pula, Anda dapat secara selektif mengabaikan bidang yang cocok dengan pola tertentu, seperti*_n
.
Untuk mengabaikan bidang yang tidak dikenal
-
Konfigurasikan bidang yang ingin Anda indeks, cari, atau kembalikan dalam hasil.
-
Tambahkan bidang dinamis yang cocok dengan bidang lain yang ditemukan dalam dokumen dan menonaktifkan semua opsi pengindeksan untuknya:
-
Tentukan
*
sebagai nama bidang, tanpa awalan atau string akhiran. (Anda juga dapat menentukan pola yang lebih spesifik untuk menonaktifkan bidang secara selektif.) -
Atur jenis bidang ke
literal
dan nonaktifkansearch
,facet
, danreturn
opsi. Perhatikan bahwa ukuran maksimum bidang literal adalah 4096 poin kode Unicode.
-
Karena pola bidang dinamis yang lebih panjang dicocokkan terlebih dahulu, Anda masih dapat menggunakan bidang dinamis untuk mengonfigurasi opsi untuk bidang yang ingin Anda gunakan. Bidang apa pun yang tidak dipetakan ke bidang indeks reguler atau bidang dinamis yang lebih panjang akan cocok dengan pola*.
catatan
Saat Anda membuat bidang dinamis dengan nama*
, itu berarti indeks Anda berpotensi berisi nama bidang yang valid. Ini juga berarti bahwa Anda dapat mereferensikan nama bidang yang valid dalam permintaan pencarian Anda, apakah itu benar-benar ada dalam indeks Anda atau tidak.
Mencari Bidang Dinamis di Amazon CloudSearch
Anda dapat mereferensikan bidang yang dihasilkan secara dinamis berdasarkan nama dalam permintaan dan ekspresi pencarian Anda, sama seperti bidang lainnya. Misalnya, untuk mencari bidang yang dihasilkan secara dinamis color_t
untuk warnared
, Anda menggunakan parser kueri terstruktur:
q=color_t:’red’&q.parser=structured
Jika Anda telah menetapkan bidang dinamis catch-all (*) untuk memetakan bidang apa pun yang tidak cocok dengan bidang reguler atau pola bidang dinamis yang lebih spesifik, Anda dapat menentukan nama bidang yang valid dalam permintaan pencarian, apakah bidang tersebut benar-benar ada dalam indeks Anda atau tidak.
Wildcard tidak didukung dalam nama bidang, jadi Anda tidak dapat mereferensikan bidang dinamis itu sendiri. Misalnya, menentukan q=*_t:’red’
akan mengembalikan kesalahan.
Opsi bidang yang dihasilkan secara dinamis mewarisi dari konfigurasi bidang dinamis mengontrol bagaimana Anda dapat menggunakan bidang dalam permintaan penelusuran, misalnya, apakah Anda dapat mencarinya, mendapatkan aspek atau sorotan, menggunakannya untuk menyortir, atau mengembalikan hasilnya. Perhatikan bahwa bidang yang dihasilkan secara dinamis harus dicari secara eksplisit — bidang dinamis TIDAK termasuk dalam bidang yang dicari secara default saat Anda menggunakan parser kueri sederhana atau tidak menentukan bidang saat mencari dengan parser kueri terstruktur.
Anda dapat menentukan bidang dinamis sebagai sumber untuk bidang lain jika bidang target adalah array. Atribut sumber bidang mendukung wildcard, yang memungkinkan Anda menentukan pola yang cocok dengan sekelompok bidang dinamis. Misalnya, untuk mencari semua bidang yang dihasilkan dari bidang *_t
dinamis, Anda dapat membuat bidang yang dipanggil all_t_fields
dan menyetel atribut sumbernya*_t
. Ini menyalin isi dari semua bidang yang namanya berakhir dengan _t
all_t_fields
. Perhatikan, bagaimanapun, bahwa mencari bidang ini akan mencari semua bidang yang cocok dengan pola, tidak hanya bidang yang dihasilkan secara dinamis.
Untuk informasi selengkapnya tentang membuat dan mengirimkan permintaan pencarian, lihat. Mencari Data Anda dengan Amazon CloudSearch