Klausa kueri merupakan bagian wajib dalam setiap permintaan pencarian. Klausa ini menentukan apa yang akan dicari dan bidang indeks mana yang digunakan. Anda dapat menggabungkan beberapa kondisi menggunakan operator logika untuk membangun kueri yang kompleks.
Sebagai contoh, Anda dapat menggabungkan bidang title dan subject bertipe TEXT untuk membuat bidang indeks komposit default. Dengan demikian, pencarian berdasarkan bidang indeks default akan mengembalikan dokumen yang bidang title atau subject-nya berisi kueri pencarian tersebut.
Anda juga dapat hanya menggunakan bidang title untuk membuat bidang indeks title_search. Dalam hal ini, pencarian berdasarkan bidang indeks title_search hanya akan mengembalikan dokumen yang bidang title-nya berisi kueri pencarian.
Sintaksis
Klausa kueri mengikuti salah satu bentuk berikut:
| Jenis kueri | Sintaksis |
|---|---|
| Pencarian kata kunci | index:'<search query>' ^ boost |
| Pencarian jangkauan geografis | index:'circle (<longitude>, <latitude>, <radius>)' |
| Pencarian jangkauan numerik | index:[<value1>, <value2>] |
Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
index | String | Ya | Bidang indeks yang akan dicari. Dikonfigurasi saat Anda mendefinisikan skema indeks. |
search query | String | Ya | Kata kunci atau frasa yang akan dicari. Harus diapit tanda petik tunggal (') atau tanda petik ganda (""). |
boost | INT | Tidak | Bobot relevansi untuk kondisi kueri. Nilai valid: 0–99. Nilai default: 99. Nilai di bawah 0 dianggap sebagai 0; nilai di atas 99 dianggap sebagai 99. Hanya berlaku jika exact_match_boost() dikonfigurasi dalam ekspresi pengurutan kasar. |
Operator logika
Gabungkan beberapa kondisi kueri menggunakan operator berikut. Semua operator harus ditulis dalam huruf kapital.
| Operator | Logika | Prioritas (terendah ke tertinggi) | Contoh |
|---|---|---|---|
RANK | Dokumen yang sesuai dengan kondisi kedua diberi peringkat lebih tinggi | 1 (terendah) | title:'cloud' RANK title:'search' |
OR | Salah satu kondisi harus sesuai | 2 | title:'cloud' OR title:'search' |
AND | Kedua kondisi harus sesuai | 3 | title:'cloud' AND type:'1' |
ANDNOT | Kondisi pertama sesuai; dokumen yang sesuai dengan kondisi kedua dikecualikan | 4 | title:'cloud' ANDNOT title:'storage' |
() | Pengelompokan — dievaluasi terlebih dahulu | 5 (tertinggi) | (title:'a' OR title:'b') AND type:'1' |
Karakter | merupakan bentuk alternatif dari OR:
query=title:'Peking University'|'Zhejiang University'Kueri frasa
Apit kueri pencarian dengan tanda petik ganda untuk melakukan kueri frasa. Dalam kueri frasa, semua kata kunci dihubungkan dan disusun dalam urutan yang sama sebelum dan sesudah analisis.
query=title:"Peking University"Kueri ini hanya mengembalikan dokumen yang judulnya berisi frasa "Peking University". Dokumen yang berisi "University in Beijing" tidak dikembalikan.
Contoh
Pencarian berdasarkan satu bidang
query=title:'Peking University'AND: kedua kondisi harus sesuai
query=title:'Peking University' AND title:'Zhejiang University'OR dengan AND: kondisi campuran
query=(title:'Peking University' OR title:'Zhejiang University') AND type:'1'ANDNOT dengan RANK: pengecualian dan penguatan
query=(title:'Peking University' ANDNOT title:'Tsinghua') RANK title:'Principal'
// Ekspresi pengurutan halus: text_relevance(title)Dokumen yang judulnya berisi "Peking University" tetapi tidak berisi "Tsinghua" dikembalikan. Di antara dokumen tersebut, dokumen yang judulnya juga berisi "Principal" diberi peringkat lebih tinggi.
Pencarian bidang indeks bertipe ARRAY
// arr_index_1 adalah indeks yang dibangun pada bidang INT ARR.
// Mengembalikan dokumen di mana arr_index_1 berisi nilai 1.
query=arr_index_1:'1'Catatan penggunaan
Klausa kueri wajib ada dan tidak boleh kosong.
Kueri pencarian harus diapit tanda petik tunggal (
') atau tanda petik ganda (""). Tanda petik yang tidak lengkap menyebabkan error kueri atau hasil yang tidak sesuai.Hanya bidang bertipe
TEXTdanSHORT_TEXTyang dapat digabungkan untuk membuat indeks komposit.Untuk informasi tentang cara istilah dianalisis dan ditokenisasi, lihat Built-in analyzer.
Untuk kueri jangkauan geografis dan numerik, lihat Range search.