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. Hal ini memungkinkan pengguna melakukan penelusuran dengan kata kunci minimal dan mendapatkan hasil yang akurat.
Presentasi hasil bergantung pada keyakinan. Keyakinan meningkat saat string kueri muncul secara konsisten di kolom skema tertentu (misalnya, "Tom Hanks" di kolom actors). 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 level atas adalah
objecttype:movies. - Memindai dokumen untuk mengidentifikasi tempat munculnya "action". Jika muncul terutama di kolom
genre, keyakinan akan meningkat bahwa itu adalah nilai properti untuk kolom tersebut.
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.
Menyusun skema untuk interpretasi kueri
Mengoptimalkan skema akan 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 menunjukkan 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" ->
genre:action object:movies - "movies with genre action or thriller" ->
objecttype:movies genre:(action OR thriller) - "comedy category movies" ->
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:
- "movies released this year" ->
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 pendeteksian otomatis. Misalnya, "action videos" mencantumkan dokumen dengan jenis MIME video.
Batasan interpretasi kueri
- Hanya berfungsi untuk ACL sumber data berikut:
- Publik domain.
- Publik sumber data.
- Sebagian besar dokumen memiliki ACL turunan yang sama.
- Nama operator bersama (misalnya,
prioritydanseverityyang keduanya menggunakan 0-3) menurunkan keyakinan. - 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 cases severity:s0") tidak diinterpretasikan.
- Hasil selalu digabungkan dengan hasil yang diberi peringkat relevansi.