Menggunakan Bidang Dinamis di Amazon CloudSearch - Amazon CloudSearch

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.

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
  1. Konfigurasikan bidang yang ingin Anda indeks, cari, atau kembalikan dalam hasil.

  2. 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, dan return 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 _tall_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