Fitur interpretasi kueri Cloud Search secara otomatis menginterpretasikan operator dan filter dalam kueri pengguna, serta mengonversi elemen tersebut menjadi kueri terstruktur berbasis operator. Interpretasi kueri menggunakan operator yang ditetapkan dalam skema, bersama dengan dokumen yang diindeks, untuk menyimpulkan maksud dari kueri pengguna. Dengan fitur ini, pengguna dapat melakukan penelusuran dengan kata kunci yang minimal, tetapi tetap mendapatkan hasil yang tepat.
Hasil aktual yang ditampilkan kepada pengguna bergantung pada keyakinan interpretasi kueri. Keyakinan didasarkan pada beberapa faktor, termasuk lokasi munculnya string kueri dalam dokumen yang diindeks. String, misalnya nama aktor "Tom Hanks", yang muncul secara konsisten dalam kolom skema yang disebut actors
menghasilkan keyakinan yang lebih tinggi. String yang sama ("Tom Hanks") yang muncul dalam paragraf, bukan kolom skema, dapat menghasilkan keyakinan yang lebih rendah. Untuk keyakinan yang tinggi, hanya hasil dari interpretasi kueri yang ditampilkan kepada pengguna. Sedangkan untuk keyakinan yang lebih rendah, hasil dari interpretasi kueri digabung dengan hasil penelusuran kata kunci normal.
Contoh interpretasi kueri
Misalnya Anda memiliki sumber data, seperti database, yang berisi informasi tentang film. Gambar 1 menunjukkan contoh kueri penelusuran dan interpretasi yang dihasilkan.
Berdasarkan kueri contoh ini, interpretasi kueri melakukan hal berikut:
Menguraikan skema dan menentukan bahwa objek level atas dalam sumber data diklasifikasikan sebagai
objecttype:movies
. Kini interpretasi kueri mengetahui bahwa "movies" dalam kueri adalah jenis objek.Memindai dokumen dalam sumber data, bersama dengan skema, untuk menentukan tempat munculnya string "action". Jika string terutama muncul dalam kolom sumber data "genre" tertentu, interpretasi kueri akan memiliki keyakinan bahwa "action" adalah nilai properti untuk properti "genre", seperti yang ditentukan dalam skema. Jika string terutama muncul dalam konteks paragraf konten, maka tingkat keyakinan interpretasi kueri akan menurun.
Interpretasi kueri yang dihasilkan adalah:
actor:“tom hanks” genre:action objecttype:movies
Interpretasi kueri secara otomatis diaktifkan untuk semua pelanggan Cloud Search tanpa pekerjaan tambahan. Namun, untuk interpretasi kueri yang optimal, Anda harus membuat struktur skema yang sesuai dengan petunjuk dalam dokumen ini.
Membuat struktur skema Anda untuk mendukung interpretasi kueri
Anda harus membuat struktur skema untuk memastikan bahwa Anda bisa mendapat manfaat dari interpretasi kueri.
Mengaktifkan interpretasi nama tampilan
Interpretasi kueri Cloud Search menggunakan
objectDefinitions
dan
propertyDefinitions
dalam skema untuk menafsirkan kueri pengguna dan menyesuaikan
hasilnya. Untuk memaksimalkan manfaat elemen skema ini, Anda harus membuat
nama tampilan yang intuitif menggunakan
displayLabel
untuk nama properti,
objectDisplayLabel
untuk nama objek, dan operatorName
untuk operator.
Skema berikut menampilkan nama tampilan yang intuitif untuk objek film:
{
"objectDefinitions": [
{
"name": "movie",
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
...
},
"propertyDefinitions": [
{
"name": "genre",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "genre"
}
},
"displayOptions": {
"displayLabel": "Category"
}
},
...
]
}
]
}
Pada contoh sebelumnya:
Definisi objek film memiliki
objectDisplayLabel
"Film".Genre propertyDefinition memiliki
operatorName
“genre” dandisplayLabel
“Category”.
Nama tampilan ini mengaktifkan Cloud Search untuk membuat interpretasi kueri berikut:
- "action movies", "genre action type movies", atau "movies genre action" diinterpretasikan sebagai
genre:action object:movies
. - “movies with genre action or thriller” diinterpretasikan sebagai
objecttype:movies genre:(action OR thriller)
. - “action film” atau “action films” diinterpretasikan sebagai
genre:action objecttype:movies
. - "comedy category movies" diinterpretasikan sebagai
genre:comedy objecttype:movies
.
Mengaktifkan interpretasi tanggal, numerik, dan pengurutan
Anda harus menentukan lessThanOperatorName
dan greaterThanOperatorName
,
yang ditentukan dalam
IntegerOperatorOptions
, untuk semua properti tanggal dan
numerik. Setelan tersebut memungkinkan interpretasi tanggal dan numerik yang otomatis. Selain itu, untuk mengaktifkan interpretasi pengurutan,
tetapkan opsi isSortable
untuk properti tanggal dan numerik. Skema berikut menunjukkan cara mengaktifkan opsi ini.
{
"objectDefinitions": [
{
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
},
"propertyDefinitions": [
{
"name": "runtime",
"isReturnable": true,
"isSortable": true,
"integerPropertyOptions": {
"orderedRanking": "DESCENDING",
"minimumValue": {
"value": 10
},
"maximumValue": {
"value": 500
},
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
},
"displayOptions": {
"displayLabel": "Length"
}
},
{
"name": "releasedate",
"isReturnable": true,
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}
]
}
Pada contoh sebelumnya:
- Properti numerik
runtime
mengacu pada durasi film.runtimelessthan
danruntimegreaterthan
ditetapkan untuk properti ini. - Properti tanggal
releaseDate
mengacu pada waktu perilisan film di bioskop.releasedbefore
danreleasedafter
ditetapkan untuk properti ini.
Setelan ini mengaktifkan Cloud Search untuk membuat interpretasi kueri berikut:
- Dengan asumsi tahun ini adalah 2019, “film yang dirilis tahun ini” diinterpretasikan sebagai
objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31
. - Dengan asumsi minggu ini adalah minggu ketiga bulan Maret, "film yang dirilis minggu lalu" diinterpretasikan sebagai
objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
- "film dengan durasi kurang dari 90" diinterpretasikan sebagai
objjecttype: movies runtimelessthan:90
. - Dengan asumsi tahun ini adalah tahun 2019, “film yang dirilis tahun ini dan berdurasi lebih dari 120 menit” diinterpretasikan sebagai
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120
. - “urutkan film berdasarkan tanggal rilis” akan memfilter “objecttype: movies” dan hasil yang ditampilkan akan diurutkan sesuai tanggal rilisnya dengan tata urutan default yang menaik.
Mengaktifkan interpretasi operator yang dipesan
Anda juga dapat menggunakan operator bawaan yang dicadangkan type
, before
, after
, objecttype
untuk meningkatkan interpretasi kueri. Saat mengindeks dokumen, lakukan hal berikut:
Isi kolom
updateTime
diItemMetadata
untuk menggunakan operatorbefore
danafter
. Setelan ini mengaktifkan Cloud Search untuk membuat interpretasi kueri berikut:- "film dari minggu lalu" akan mencantumkan semua film yang diperbarui dalam indeks pada minggu sebelumnya.
- "film sebelum Januari 2019" akan mencantumkan semua film yang diindeks sebelum Januari 2019.
Isi kolom
mimeType
diItemMetadata
untuk menggunakan pendeteksian jenis otomatis. Kueri “video aksi” akan mencantumkan semua dokumen film aksi dengan jenis mimeapplication/mp4
,application/mpeg4
,application/x-shockwave-flash
,video/
, danapplication/vnd.google-apps.video
.
Batasan interpretasi kueri
Fitur interpretasi kueri memiliki batasan berikut.
- Interpretasi kueri hanya berfungsi untuk ACL sumber data berikut:
- Semua dokumen dalam domain bersifat publik (semua orang dalam domain dapat mengakses).
- Semua dokumen dalam sumber data bersifat publik (setiap orang yang memiliki akses ke ACL sumber data).
- Sebagian besar dokumen dalam sumber data memiliki ACL yang sama (semua dokumen mewarisi ACL dari item container yang sama) tanpa pembaca tambahan yang ditentukan.
- Jika beberapa operator skema memiliki nilai yang sama, interpretasi dari nilai tersebut terhadap intent operator untuk kueri bergantung pada keseluruhan faktor keyakinan yang ditampilkan oleh sistem interpretasi kueri. Misalnya, anggap Anda memiliki properti
priority
danseverity
dengan nama operator yang sama yang ditentukan dalam skema. Katakanlah kedua operator tersebut dapat memiliki nilai 0, 1, 2, atau 3. Dalam contoh ini, "0" dalam kueri dapat merujuk pada nilai operator untukpriority
atauseverity
. Nilai ini bersifat ambigu dan tingkat keyakinannya lebih rendah. - Secara default, interpretasi kueri Cloud Search menurunkan nilai kolom saat menginterpretasikan kueri, kecuali untuk operator teks yang ditentukan dengan opsi
exactMatchWithOperator
. - Operator
source
tidak didukung dalam kueri. - Kueri yang menggabungkan istilah berbasis operator dan istilah teks bebas tidak diinterpretasikan. Misalnya, kueri "p0 tingkat keparahan kasus prioritas:s0" tidak akan didukung karena "p0 kasus prioritas" adalah istilah teks bebas, sedangkan "tingkat keparahan:s0" adalah istilah berbasis operator.
- Strategi interpretasi kueri selalu memadukan hasil yang diinterpretasikan dengan hasil biasa (diurutkan menurut relevansi dan tanpa interpretasi). Strategi ini tidak melakukan penggantian hasil halaman penuh.