Topik ini menjelaskan sintaksis klausa kueri dan memberikan catatan penggunaan terkait.
Ikhtisar
Klausa kueri merupakan bagian penting dari kueri pencarian. Klausa ini mendefinisikan konten spesifik yang akan di-query berdasarkan bidang indeks tertentu. Anda dapat menentukan beberapa kondisi kueri dan menghubungkannya menggunakan operator logika seperti AND, OR, ANDNOT, dan RANK.
Sebagai contoh, Anda dapat menggabungkan bidang title dan subject bertipe TEXT untuk membuat bidang indeks komposit default. Kemudian, Anda dapat melakukan pencarian berdasarkan bidang indeks default untuk mengambil dokumen di mana bidang title atau subject berisi kueri pencarian.
Anda juga dapat menggunakan hanya bidang title untuk membuat bidang indeks title_search. Lalu, ketika Anda melakukan pencarian berdasarkan bidang indeks title_search, hanya dokumen di mana bidang title berisi kueri pencarian yang dapat diambil.
Deskripsi
Kondisi kueri dapat digunakan dalam format berikut:
Kueri reguler: index: 'Kueri pencarian'^boost
Pencarian rentang: index:'circle (Longitude Latitude,Radius)'
Pencarian rentang: index:[Nilai numerik 1,Nilai numerik 2]
index: Informasi indeks yang dikonfigurasi saat Anda mendefinisikan skema indeks. Bidang indeks digunakan untuk mencari dokumen di mana bidang sumber dari bidang indeks yang ditentukan berisi kueri pencarian.
Kueri pencarian: Konten yang ingin Anda cari.
boost: Bobot yang ingin Anda tentukan untuk kueri pencarian. Nilai parameter ini harus bertipe INT. Nilai valid: [0,99]. Jika Anda tidak menentukan parameter boost, nilai defaultnya adalah 99. Parameter ini opsional dan hanya berlaku ketika Anda mengonfigurasi fungsi
exact_match_boost()dalam ekspresi sortir kasar.Anda dapat menentukan beberapa kondisi kueri dan menghubungkannya menggunakan operator logika berikut:
(),AND,OR,ANDNOT,RANK. Semua operator ini harus dalam huruf besar. Operator-operator tersebut diurutkan berdasarkan prioritas sebagai berikut:RANK<OR<AND<ANDNOT<().Kueri pencarian yang diapit tanda kutip ganda (
"") adalah kueri frasa. Dalam kueri frasa, semua kata dihubungkan dan disusun dalam urutan yang sama sebelum dan sesudah analisis.Pencarian rentang digunakan untuk analisis lokasi geografis dan analisis numerik. Untuk informasi lebih lanjut, lihat Pencarian rentang.
Catatan penggunaan
Klausa kueri wajib ada dan tidak boleh kosong.
Operator ANDNOT tidak dapat digunakan secara terpisah dan kondisi di sebelah kiri operator ANDNOT tidak boleh kosong, seperti index_name:''.
Jika kondisi RANK tidak berada di akhir kueri, seperti
index1:'xxx' RANK index2:'xxx' AND index3:'xxx', Anda harus mengapit operator RANK dan kondisi terkait dalam tanda kurung (), seperti(index1:'xxx' RANK index2:'xxx') AND index3:'xxx'. Jika tidak, semua kondisi setelah operator RANK termasuk dalam kondisi RANK. Oleh karena itu, index1:'xxx' RANK index2:'xxx' AND index3:'xxx' sama denganindex1:'xxx' RANK (index2:'xxx' AND index3:'xxx').Kueri pencarian harus diapit tanda kutip tunggal (') atau tanda kutip ganda (""). Jika tidak, kesalahan kueri akan dikembalikan atau hasil kueri yang tidak terduga akan dikembalikan.
Hanya bidang bertipe
TEXTdanSHORT_TEXTyang dapat digabungkan untuk membuat indeks komposit.Jika nilai boost kurang dari 0, maka 0 yang digunakan. Jika nilai boost lebih dari 99, maka 99 yang digunakan.
Untuk informasi lebih lanjut tentang arti berbagai pencarian, lihat Analyzer bawaan.
Contoh
Cari dokumen yang judulnya mengandung Universitas Peking.
query=title: 'Universitas Peking'Cari dokumen yang judulnya mengandung Universitas Peking dan Universitas Zhejiang.
query=title: 'Universitas Peking' AND title: 'Universitas Zhejiang'Cari dokumen yang judulnya mengandung Universitas Peking atau Universitas Zhejiang dan di mana parameter type diatur ke 1.
query=(title: 'Universitas Peking' OR title: 'Universitas Zhejiang') AND type:'1'Cari dokumen yang judulnya mengandung Universitas Peking atau Universitas Zhejiang. Dalam contoh ini, sintaksis OR disajikan dalam bentuk lain.
query=title: 'Universitas Peking'|'Universitas Zhejiang'Cari dokumen yang judulnya mengandung Universitas Peking tetapi tidak Tsinghua. Dokumen yang judulnya mengandung Kepala Sekolah diurutkan di depan.
query=(title:'Universitas Peking' ANDNOT title:'Tsinghua') RANK title: 'Kepala Sekolah' // Ekspresi sortir halus: text_relevance(title)Cari dokumen yang judulnya mengandung Universitas Peking. Universitas Peking tidak dapat dipecah menjadi beberapa istilah dan dokumen yang mengandung istilah serupa tidak dikembalikan, seperti "Universitas di Beijing".
query=title: 'Universitas Peking'Lakukan pencarian berdasarkan bidang indeks bertipe ARRAY.
// Bidang bertipe INT ARR digunakan sebagai indeks arr_index_1 // Ambil dokumen di mana nilai indeks arr_index_1 adalah 1. query=arr_index_1:'1'