Interpretasi kueri Cloud Search secara otomatis mengonversi operator dan filter dalam kueri pengguna menjadi kueri terstruktur berbasis operator. Fitur ini menggunakan operator yang ditentukan dalam skema dan dokumen yang diindeks untuk menyimpulkan maksud kueri. Dengan fitur ini, pengguna dapat melakukan penelusuran dengan kata kunci yang minimal dan mendapatkan hasil yang tepat.
Penyajian hasil bergantung pada keyakinan. Tingkat keyakinan meningkat jika string kueri secara konsisten muncul di kolom skema tertentu (misalnya, "Tom Hanks"
di kolom actors). Tingkat keyakinan menurun saat string muncul dalam prosa umum. Keyakinan tinggi hanya menampilkan hasil yang diinterpretasikan, sedangkan keyakinan yang lebih rendah menggabungkannya dengan hasil kata kunci standar.
Contoh interpretasi kueri
Pertimbangkan database yang berisi informasi film. Gambar 1 menunjukkan contoh kueri penelusuran dan interpretasinya.
Untuk contoh ini, interpretasi kueri:
- Menentukan dari skema bahwa objek tingkat teratas adalah
objecttype:movies. - Memindai dokumen untuk mengidentifikasi tempat terjadinya "tindakan". Jika terutama muncul di kolom
genre, keyakinan bahwa itu adalah nilai properti untuk kolom tersebut akan meningkat.
Interpretasi yang dihasilkan adalah:
actor:"tom hanks" genre:action objecttype:movies
Interpretasi kueri bersifat otomatis untuk semua pengguna, tetapi Anda dapat mengoptimalkannya dengan menyusun skema seperti yang dijelaskan di bagian berikut.
Membuat struktur skema untuk interpretasi kueri
Mengoptimalkan skema memastikan Anda mendapatkan manfaat dari interpretasi kueri.
Mengaktifkan interpretasi nama tampilan
Interpretasi kueri menggunakan objectDefinitions dan propertyDefinitions untuk menginterpretasikan kueri. Buat nama tampilan yang intuitif menggunakan
displayLabel
untuk properti,
objectDisplayLabel
untuk objek, dan operatorName untuk operator.
Contoh ini menampilkan nama tampilan yang intuitif untuk objek film:
{
"objectDefinitions": [{
"name": "movie",
"options": {
"displayOptions": { "objectDisplayLabel": "Films" }
},
"propertyDefinitions": [{
"name": "genre",
"isReturnable": true,
"textPropertyOptions": {
"operatorOptions": { "operatorName": "genre" }
},
"displayOptions": { "displayLabel": "Category" }
}]
}]
}
Nama tampilan ini memungkinkan interpretasi seperti:
- "action movies" (film laga) ->
genre:action object:movies - "movies with genre action or thriller" ->
objecttype:movies genre:(action OR thriller) - "comedy category movies" (film kategori komedi) ->
genre:comedy objecttype:movies
Mengaktifkan interpretasi tanggal, numerik, dan pengurutan
Tentukan lessThanOperatorName dan greaterThanOperatorName di
IntegerOperatorOptions
untuk semua properti tanggal dan numerik. Untuk mengaktifkan pengurutan, tetapkan isSortable.
Contoh ini mengaktifkan opsi berikut:
{
"objectDefinitions": [{
"propertyDefinitions": [
{
"name": "runtime",
"isSortable": true,
"integerPropertyOptions": {
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
}
},
{
"name": "releasedate",
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}]
}
Setelan ini memungkinkan interpretasi seperti:
- "film yang dirilis tahun ini" ->
objecttype:movies releasedafter:2019-1-1 releasedbefore:2019-12-31 - "movies with runtime less than 90" ->
objecttype:movies runtimelessthan:90
Mengaktifkan interpretasi operator yang dipesan
Gunakan operator bawaan seperti type, before, after, dan objecttype:
- Isi
updateTimediItemMetadatauntuk menggunakanbeforedanafter. - Isi
mimeTypediItemMetadatauntuk deteksi otomatis. Misalnya, "video aksi" mencantumkan dokumen dengan jenis MIME video.
Batasan interpretasi kueri
- Hanya berfungsi untuk ACL sumber data berikut:
- {i>Domain public<i}.
- Sumber data publik.
- Sebagian besar dokumen memiliki ACL turunan yang sama.
- Nama operator bersama (misalnya,
prioritydanseveritykeduanya menggunakan 0-3) tingkat keyakinan yang lebih rendah. - Secara default, interpretasi menggunakan huruf kecil untuk nilai kolom kecuali jika Anda menggunakan
exactMatchWithOperator. - Operator
sourcetidak didukung. - Istilah operator dan teks bebas gabungan (misalnya, "p0 kasus tingkat keparahan:s0") tidak ditafsirkan.
- Hasil selalu dipadukan dengan hasil yang diurutkan menurut relevansi.