Halaman ini menunjukkan cara mengonfigurasi kolom skema untuk menyiapkan aplikasi bagi data terstruktur, data tidak terstruktur dengan metadata, atau data situs dengan atribut terstruktur kustom.
Setelan kolom membantu menentukan cara Penelusuran Agen menggunakan kolom dalam hasilnya. Anda dapat menggunakan tab Schema di konsolGoogle Cloud untuk mengonfigurasi setelan kolom.
Konfigurasi setelan kolom hanya tersedia untuk aplikasi dengan penyimpanan data yang berisi data terstruktur atau data tidak terstruktur dengan metadata.
Setelan kolom
Setelan kolom berikut tersedia untuk banyak jenis kolom dalam data penelusuran atau rekomendasi Anda, tetapi tidak untuk semua jenis data. Skema berisi beberapa setelan kolom untuk setiap kolom, dan tabel berikutnya berisi setelan yang dapat diterapkan ke kolom dalam skema. Penggunaan data terstruktur sangat direkomendasikan untuk setelan kolom berikut:
| Setelan | Definisi | Tujuan | Contoh kasus penggunaan |
|---|---|---|---|
| Dapat diindeks | Menetapkan kolom agar dapat diindeks memungkinkan operasi seperti pemfilteran, peningkatan, dan faseting pada kolom terstruktur dalam dokumen. Kolom berjenis |
Menandai kolom sebagai Perhatikan bahwa menandai kolom sebagai |
Di penyimpanan data hotel, Anda dapat menetapkan kolom, seperti hotel_chain, sebagai dapat diindeks. Hal ini memungkinkan Anda menerapkan operasi pemberian peringkat, pemfilteran, dan peningkatan pada hotel_chain. Misalnya,
Anda dapat menerapkan filter sehingga penelusuran hanya akan menampilkan hasil penelusuran
yang berisi jaringan hotel yang difilter. |
| Dapat ditelusuri |
Kolom yang kemungkinan besar
terkait dengan penelusuran ditetapkan sebagai Hanya kolom dengan nilai teks yang dapat ditandai dapat ditelusuri. Dengan demikian, kolom harga numerik dapat diindeks (untuk pemfilteran atau pengelompokan) tetapi tidak dapat ditelusuri sebagai teks lengkap. |
Menyetel kolom ke Dapat Ditelusuri meningkatkan perolehan untuk kolom tersebut dalam kueri penelusuran, sehingga pengguna dapat menemukan konten, seperti halaman web, dengan membuat kueri teks dalam kolom ini. Menandai kolom sebagai dapat ditelusuri memungkinkan penerapan peringkat. Akibatnya, menandai terlalu banyak kolom sebagai dapat ditelusuri dapat memengaruhi presisi penelusuran secara negatif dengan membuat algoritma peringkat menjadi terlalu jenuh dan menampilkan terlalu banyak hasil. Hal ini dapat menyebabkan hasil penelusuran yang tidak relevan. Anda dapat menerapkan pembobotan relatif ke kolom yang dapat ditelusuri; namun, karena default yang andal, hal ini jarang diperlukan. Lihat Kolom yang dapat ditelusuri bobot di bawah. |
Sistem tiket dukungan penyedia layanan internet menyimpan setiap tiket sebagai dokumen terstruktur. Jika dokumen ini berisi kolom teks yang Dapat ditelusuri, seperti |
| Dapat dicocokkan dengan awalan (Pratinjau) |
Mengizinkan pencocokan awalan kolom
teks menggunakan operator Untuk mengetahui informasi selengkapnya, lihat Menyediakan kolom untuk pencocokan awalan dan parsial di bawah. |
Menyetel kolom agar dapat dicocokkan dengan awalan memungkinkan mesin telusur mencocokkan string kueri yang merupakan awalan dari nilai kolom. Hal ini sangat berguna untuk mencocokkan ID, jalur, atau kode hierarkis yang awal stringnya diketahui. Pencocokan awalan dibatasi hingga 12 karakter pertama dari nilai kolom yang dinormalisasi dan meningkatkan ukuran indeks penelusuran. Anda tidak dapat menetapkan lebih dari 10 kolom sebagai dapat dicocokkan dengan awalan. |
Anda memiliki kolom, |
| Cocok sebagian (Pratinjau) |
Memungkinkan pencocokan string parsial pada kolom teks menggunakan
operator Untuk mengetahui informasi selengkapnya, lihat Menyediakan kolom untuk pencocokan awalan dan parsial di bawah. |
Menetapkan kolom agar dapat dicocokkan sebagian memungkinkan pencocokan berbasis token dalam kolom, sehingga pengguna dapat menemukan konten meskipun hanya sebagian nilai kolom yang diketahui. Mesin telusur mencocokkan token kueri dengan token dalam nilai kolom, terlepas dari urutannya. Perhatikan bahwa menandai kolom sebagai cocok sebagian akan meningkatkan ukuran indeks penelusuran. Anda tidak dapat menetapkan lebih dari 10 kolom sebagai cocok sebagian. |
Anda ingin memfilter wilayah di Eropa. Nama |
| Facet dinamis | Menyediakan filter yang sadar konteks
untuk menargetkan penelusuran pengguna dengan lebih baik. Menetapkan kolom sebagai
Dynamic Facetable memungkinkan sistem otomatis
membuat filter interaktif (aspek) berdasarkan nilai unik yang ada di
kolom. |
Menetapkan kolom ke Dynamic
facetable memungkinkan pengguna menyempurnakan hasil penelusuran secara dinamis dengan
memilih kategori atau atribut yang berasal langsung dari data yang Anda masukkan,
tanpa harus menentukan setiap opsi filter yang mungkin secara manual. Hal ini
memungkinkan pengguna mempersempit penelusuran mereka ke konten web yang sangat spesifik.Gunakan Dapat Difasetkan Dinamis dengan Dapat Ditelusuri untuk
mendapatkan hasil yang lebih baik, yang meningkatkan perolehan penelusuran Anda dan
kualitas faset yang ditawarkan kepada pengguna.
|
Halaman di pusat informasi perusahaan internal, seperti kebijakan HR, akan diserap dengan data seperti department, document_type, atau last_modified_date. Jika
kolom ini diberi tag dynamic facetable, karyawan
yang menelusuri istilah seperti penggantian biaya akan secara dinamis
membuat filter interaktif berdasarkan hasil yang relevan
yang ditemukan. Dalam kasus tersebut, antarmuka web dapat menampilkan aspek untuk
Departemen: Keuangan, Perjalanan, Jenis Dokumen: Kebijakan,
FAQ, atau Tanggal Terakhir Diubah: Kuartal Ini, Tahun
Lalu. |
| Dapat diambil | Saat kueri penelusuran menemukan konten yang cocok, mesin telusur dapat menarik nilai kolom yang dapat diambil untuk ditampilkan atau digunakan dalam aplikasi, yang berarti informasi dari dokumen asli ditampilkan sebagai bagian dari hasil penelusuran. Kolom kunci (ID unik untuk dokumen) disiapkan agar dapat diambil. | Kolom yang dapat diambil memberikan konteks penelusuran dengan membedakan kolom yang nilainya dapat ditampilkan dari kolom yang hanya digunakan dalam logika penelusuran, tetapi nilai mentahnya tidak dimaksudkan untuk ditampilkan kepada pengguna akhir. | Untuk penelusuran produk di situs penjual,
product_id, name, price, dan
image_url adalah kolom umum yang ingin Anda tetapkan sebagai
dapat diambil. Di sisi lain, internal_tracking_code dapat
diindeks dan dapat difilter untuk tujuan administratif saja, tetapi tidak
dapat diambil di hasil penelusuran publik. |
| Dapat diselesaikan | Mengizinkan konten kolom digunakan untuk saran kueri penelusuran. Untuk informasi selengkapnya, lihat Mengonfigurasi pelengkapan otomatis. | Setelan ini memungkinkan nilai dalam kolom tersebut digunakan untuk memberikan saran kueri real-time saat pengguna mengetik. Fitur ini membantu mengarahkan pengguna ke konten yang relevan dan mempercepat proses penelusuran. Faktor tertentu seperti penggunaan pemfilteran bahasa natural dapat memengaruhi performa ini. | Jika kolom
completable disetel untuk product_name,
brand, dan category, saat pengguna mengetik
Tech, saran pelengkapan otomatis dapat menampilkan:
|
| Dapat difilter | Memungkinkan rekomendasi menggunakan kolom untuk memfilter hasil yang direkomendasikan, yang menentukan hasil penelusuran yang dilihat pengguna Anda. Untuk informasi tentang memfilter rekomendasi, lihat Memfilter rekomendasi. | Menetapkan kolom ke Filterable membantu menyesuaikan rekomendasi untuk pengguna. Perhatikan bahwa batas pemfilteran berlaku. |
Setelan filter menurut bahasa dan drama dapat terlihat seperti: language_code: ANY("en", "fr") OR categories: ANY("drama"). |
Perbedaan antara setelan yang umum digunakan
Ada perbedaan utama antara setelan kolom yang dapat diindeks, dapat ditelusuri, dan dapat diambil. Tabel ini merangkum perbedaan tersebut.
| Fitur | Indexable | Dapat ditelusuri | Dapat diambil |
|---|---|---|---|
| Peran Utama | Membuat konten kolom tersedia untuk mesin telusur | Mengizinkan kueri teks lengkap terhadap konten kolom | Mengizinkan nilai kolom ditampilkan dalam hasil penelusuran |
| Analisis | Konten diproses dan dimasukkan ke dalam indeks. | Biasanya menjalani analisis leksikal yang ekstensif. | Nilai disimpan apa adanya untuk ditampilkan. |
| Mungkinkah... | |||
| ...Dapat ditelusuri? | Ya (sering kali merupakan prasyarat) | T/A | Tidak harus (dapat diambil tanpa dapat ditelusuri) |
| ...Dapat diambil? | Belum tentu | Belum tentu | T/A |
| ...Dapat Difilter/Diurutkan/Dikelompokkan? | Ya (umumnya juga merupakan prasyarat untuk hal ini) | Tidak secara langsung; ini adalah atribut terpisah yang sering kali dibuat di kolom yang dapat diindeks. | Tidak secara langsung; atribut ini berkaitan dengan cara kolom diindeks dan dikueri, bukan hanya ditampilkan. |
Dalam praktiknya, banyak kolom yang penting untuk pengalaman pengguna (seperti judul, deskripsi, dan informasi identitas pribadi) sering disetel menjadi indexable, searchable, dan retrievable.
Batasan
Setelan kolom memiliki batasan berikut:
- Anda dapat mengonfigurasi hingga 50 kolom sebagai kolom yang dapat diindeks, dapat ditelusuri, dapat diambil, atau facet dinamis.
- Untuk mengonfigurasi kolom sebagai aspek dinamis, kolom tersebut harus dikonfigurasi sebagai dapat diindeks terlebih dahulu.
- Mengubah setelan yang dapat diindeks memerlukan pengindeksan ulang data, yang dapat memakan waktu berjam-jam, terutama untuk penyimpanan data yang besar.
Jika Anda mengonfigurasi kolom untuk aplikasi penelusuran media dan menginginkan informasi mendetail tentang kolom dalam skema, lihat Tentang dokumen media dan penyimpanan data.
Memperbarui setelan kolom
Untuk memperbarui setelan kolom:
Di konsol Google Cloud , buka halaman AI Applications.
Klik nama aplikasi yang ingin Anda edit.
Klik Data.
Klik tab Schema. Tab ini menampilkan setelan kolom saat ini.
Anda tidak akan melihat tab Skema jika penyimpanan data Anda berisi data situs dasar atau data tidak terstruktur tanpa metadata.
Klik Edit.
Pilih atau hapus setelan kolom yang perlu Anda perbarui. Beberapa setelan kolom tidak didukung. Misalnya, kolom numerik tidak dapat disetel ke Dapat ditelusuri.
Klik Simpan untuk menerapkan perubahan.
Menimbang kolom yang dapat ditelusuri (Pratinjau)
Jika menandai kolom dapat ditelusuri, Anda dapat menentukan bobot untuk menunjukkan kepentingan relatifnya dalam hasil penelusuran. Dalam sebagian besar situasi, Anda tidak perlu menentukan bobot untuk setiap kolom karena bobot default berfungsi dengan baik.
Namun, penyesuaian bobot mungkin diperlukan dalam beberapa situasi, misalnya:
Anda memigrasikan data dari platform penelusuran yang sudah menggunakan kolom berbobot.
Saat bobot default tidak memberikan hasil penelusuran yang memuaskan. Secara khusus, hal ini dapat terjadi saat Anda memiliki banyak kolom yang dapat ditelusuri dan beberapa di antaranya jauh lebih penting daripada yang lain.
Mungkin, ringkasan adalah kolom yang paling penting untuk penelusuran, jadi Anda ingin memprioritaskan teks tersebut.
Atau, skema memiliki kolom yang berisi kata kunci yang sangat relevan yang merupakan prediktor yang sangat baik untuk hasil penelusuran, tetapi, karena kolom ini jauh lebih pendek daripada yang lain, pengaruhnya sering kali dibayangi oleh kolom yang lebih panjang. Meningkatkan bobotnya akan memastikan dampak yang diinginkan.
Tingkat berat
Bobot dikelompokkan ke dalam tingkat berikut:
| Tingkat kepentingan kolom | Penjelasan |
|---|---|
| Sangat rendah | Nilai rendah yang masih dipertimbangkan sistem saat menggabungkan skor dari semua kolom. Jika Anda menginginkan bobot yang lebih kecil sehingga efeknya dapat diabaikan, jangan menandai kolom dapat ditelusuri. |
| Rendah | Bobot yang lebih rendah dari default. |
| Default | Bobot standar untuk kolom yang dapat ditelusuri. Bobot ini memberikan performa yang cukup baik untuk sebagian besar kasus. |
| Tinggi | Bobot yang jauh lebih tinggi daripada default. |
| Sangat tinggi | Bobot yang mendominasi. Biasanya, Anda mencadangkan ini untuk paling banyak satu kolom. |
Pembaruan skema dan pengindeksan ulang
Menambahkan bobot ke kolom yang dapat ditelusuri memerlukan pembaruan skema dan pengindeksan ulang data berikutnya di penyimpanan data. Memperbarui skema memerlukan waktu berjam-jam, dan tidak ada indikator yang dapat diandalkan untuk memberi tahu Anda kapan pengindeksan selesai, jadi Anda perlu memperkirakan waktu pengindeksan secara berlebihan.
Menetapkan tingkat bobot pada kolom
Tugas menetapkan tingkat bobot untuk kolom bisa jadi membosankan karena Anda hanya boleh membuat sedikit perubahan dan meninjau hasil penelusuran dengan cermat setelahnya untuk memeriksa konsekuensi yang tidak diinginkan. Setelah setiap perubahan, Anda harus menunggu pengindeksan ulang selesai sebelum dapat mengevaluasi dampak perubahan tersebut.
Anda hanya dapat mengonfigurasi pembobotan kolom penelusuran melalui API. Fitur ini tidak tersedia di konsol Google Cloud .
Untuk menetapkan bobot, Anda perlu memperbarui skema untuk penyimpanan data melalui metode API
projects.locations.dataStores.schemas.patch.
Jika Anda belum memiliki skema, ikuti petunjuk untuk mendapatkan skema di Melihat definisi skema.
Ikuti petunjuk untuk mengupdate skema secara terprogram. Tambahkan bobot ke satu atau beberapa kolom yang dapat ditelusuri, seperti dalam contoh berikut:
"summary": { "type": "string", "searchable": true, "weight": "high" }, "uri": { "type": "string", "searchable": true, "weight": "low" },Dalam contoh ini, kolom
summaryditetapkan ke bobot yang lebih tinggi daripada normal dan kolomurike bobot yang lebih rendah. Jika Anda ingin mengembalikan bobot ke nilai default, tetapkan kedefault.Nilai yang diizinkan untuk parameter bobot adalah:
very_lowlowdefaulthighvery_high
Tunggu hingga pengindeksan ulang selesai dan uji perilaku penelusuran.
Menyediakan kolom untuk pencocokan awalan dan parsial (Pratinjau)
Untuk kolom berjenis string, Anda dapat mengedit skema untuk membuat kolom
tersedia untuk pencocokan awalan atau pencocokan sebagian. Dengan begitu, Anda dapat menggunakan
STARTS_WITH atau CONTAINS dalam ekspresi filter.
Pembaruan skema dan pengindeksan ulang
Membuat kolom tersedia untuk pencocokan awalan atau parsial memerlukan pembaruan skema dan pengindeksan ulang data berikutnya di penyimpanan data. Memperbarui skema membutuhkan waktu berjam-jam, dan tidak ada indikator yang andal untuk memberi tahu Anda kapan pengindeksan selesai, jadi Anda perlu memperkirakan waktu pengindeksan secara berlebihan.
Memperbarui skema untuk pencocokan awalan dan parsial
Untuk menentukan kolom yang tersedia untuk pencocokan awalan atau pencocokan parsial, Anda perlu memperbarui skema penyimpanan data melalui metode API
projects.locations.dataStores.schemas.patch.
Jika Anda belum memiliki skema, ikuti petunjuk untuk mendapatkan skema di Melihat definisi skema.
Ikuti petunjuk untuk mengupdate skema secara terprogram. Tetapkan parameter yang dapat dicocokkan ke
truedalam skema, seperti dalam contoh berikut:"zone": { "type": "string", "searchable": true, "prefixMatchable": true }, "region": { "type": "string", "searchable": true, "partialMatchable": true }, "model": { "type": "string", "searchable": true, "prefixMatchable": true, "partialMatchable": true },Dalam contoh ini, kolom
zoneditetapkan agar dapat dicocokkan dengan awalan. Hingga 12 karakter, tidak peka huruf besar/kecil, dapat digunakan dalam ekspresi filter untuk mencocokkan nilai kolom. Kolomregionditetapkan agar dapat dicocokkan sebagian.Tunggu hingga pengindeksan ulang selesai.
Detail tentang pencocokan awalan
Pencocokan awalan di Penelusuran Agen memungkinkan Anda memfilter hasil berdasarkan
apakah nilai kolom dimulai dengan string tertentu. Kemampuan ini didukung
oleh operator STARTS_WITH dan mengharuskan kolom teks target dikonfigurasi sebagai
prefixMatchable dalam skema.
Logika normalisasi dan pencocokan
Untuk mengoptimalkan performa dan memastikan konsistensi, sistem menerapkan proses normalisasi tertentu pada nilai kolom (selama pengindeksan) dan string kueri (selama penelusuran).
Huruf kecil: Semua karakter dikonversi menjadi huruf kecil. Hal ini membuat pencocokan tidak peka huruf besar/kecil.
Pemangkasan 12 karakter: Sistem hanya mempertimbangkan 12 karakter pertama dari string. Karakter apa pun di luar batas ini akan diabaikan untuk tujuan pencocokan awalan.
Cara kerjanya
Pada waktu pengindeksan, untuk kolom yang ditandai sebagai prefixMatchable, sistem akan membuat token awalan untuk 12 karakter pertama. Untuk nilai seperti asia-south1-c, indeks menyimpan token untuk a, as, asi, asia, asia-, dan seterusnya, hingga karakter ke-12 (asia-south1-).
Pada waktu kueri, string yang diberikan ke operator STARTS_WITH juga
dikonversi ke huruf kecil dan dipangkas menjadi 12 karakter. Kueri kemudian dicocokkan dengan token awalan yang disimpan.
Contoh
Contoh berikut menunjukkan pengaruh normalisasi 12 karakter terhadap hasil penelusuran:
Pencocokan luas:
STARTS_WITH("A")cocok dengan nilai apa pun yang diawali dengan "a" (tidak peka huruf besar/kecil), sepertiasia,australia, atauafrica.Awalan parsial:
STARTS_WITH("asia-south")cocok denganasia-south1-adanasia-southeast1-bkarena keduanya diawali dengan string 10 karakter yang ditentukan.Perilaku pemotongan: Karena hanya 12 karakter pertama yang dicocokkan,
STARTS_WITH("asia-south1-a")cocok dengan nilai kolomasia-south1-c. Hal ini terjadi karena kedua string dinormalisasi ke awalan 12 karakter yang sama:asia-south1-.
Detail tentang pencocokan sebagian
Pencocokan sebagian di Penelusuran Agen memungkinkan Anda memfilter hasil berdasarkan
apakah nilai kolom berisi kata atau token tertentu. Kemampuan ini didukung oleh operator CONTAINS dan mengharuskan kolom teks target dikonfigurasi sebagai partialMatchable dalam skema.
Logika normalisasi dan tokenisasi
Penelusuran Agen menormalisasi dan melakukan tokenisasi nilai kolom (selama pengindeksan) dan string kueri (selama penelusuran):
Huruf kecil: Agent Search mengonversi karakter menjadi huruf kecil. Hal ini membuat pencocokan tidak peka huruf besar/kecil.
Tokenisasi: Penelusuran Agen membagi string menjadi token (kata) individual menggunakan spasi dan karakter lain sebagai pembatas.
Pemisah standar: Spasi dan tanda baca umum berfungsi sebagai pemisah; ini mencakup tanda hubung (
-), garis miring (/), koma (,), titik (.), tanda bintang (*), kurung kurawal ({ }), kurung siku ([ ]), kurung bulat (( )), dan apostrof (').Non-pembatas: Ampersand (
&) dan garis bawah (_) tidak berfungsi sebagai pembatas. Sistem memperlakukan karakter yang digabungkan oleh simbol ini sebagai satu token.Pemisah email (
@): Simbol@berfungsi sebagai pemisah khusus untuk membantu mengenali alamat email. Sistem membuat token untuk setiap komponen serta bentuk gabungannya. Misalnya, sistem membuat tokensupport+tier1@example.commenjadisupport,tier1,example,com,support+tier1@example.com, dansupport@example.com.
Cara kerjanya
Pada waktu pengindeksan, untuk kolom yang ditandai sebagai partialMatchable, sistem
menormalisasi dan melakukan tokenisasi nilai kolom serta menyimpan token yang dihasilkan dalam
indeks. Misalnya, nilai kolom 25-meter, outdoor, swimming
pool akan di-tokenisasi menjadi [25, meter, outdoor, swimming, pool].
Pada waktu kueri, string yang diberikan ke operator CONTAINS menjalani proses
normalisasi dan tokenisasi yang sama. Kemudian, mesin telusur akan memverifikasi bahwa semua token kueri yang dihasilkan cocok dengan token yang disimpan untuk kolom tersebut. Urutan
token tidak berpengaruh.
Contoh
Contoh berikut menunjukkan pengaruh tokenisasi terhadap hasil pencocokan parsial:
Pencocokan token dasar: Jika nilai kolom adalah
25-meter, outdoor, swimming pool, filterCONTAINS("Outdoor pool")akan cocok. Sistem akan melakukan tokenisasi kueri ke[outdoor, pool], yang keduanya ada dalam token kolom.Independensi urutan: Filter
CONTAINS("pool outdoor")juga cocok dengan nilai kolom25-meter, outdoor, swimming poolkarena sistem memeriksa keberadaan setiap token secara terpisah dari urutannya.Pencocokan alamat email: Jika kolom menyimpan email
support+tier1@example.com, filter sepertiCONTAINS("support"),CONTAINS("example.com"), atauCONTAINS("support@example.com")semuanya berhasil dicocokkan karena tokenisasi khusus simbol@.
Langkah berikutnya
- Memperbarui skema untuk data terstruktur
- Mengonfigurasi hasil penelusuran
- Melihat pratinjau hasil penelusuran