OpenSearch menyediakan berbagai sintaksis pencarian untuk memenuhi kebutuhan pencarian Anda dalam berbagai skenario.
URL
/v3/openapi/apps/$app_name/search?fetch_fields=name&query=config=format:fulljson&&query=name:'zhangsan'&&sort=id
$app_name: Nama aplikasi. OpenSearch menyediakan aplikasi standar dan lanjutan. Parameter ini wajib. Permintaan pencarian dikirim ke versi online dari aplikasi.
Contoh URL menghilangkan informasi seperti parameter di header permintaan dan metode pengkodean.
Contoh URL juga menghilangkan titik akhir yang digunakan untuk terhubung ke OpenSearch.
Untuk informasi lebih lanjut tentang definisi, penggunaan, dan nilai contoh semua parameter permintaan yang digabungkan dalam URL sebelumnya, lihat bagian "Parameter Permintaan" dari topik ini.
Protokol
HTTP
Metode permintaan
GET
Format yang didukung
JSON
Parameter permintaan
Untuk informasi lebih lanjut tentang aturan penggabungan parameter permintaan, lihat Metode Tanda Tangan API OpenSearch V3.
Parameter | Tipe | Wajib | Nilai valid | Nilai default | Deskripsi |
query | string | Ya | Wajib. Tubuh permintaan pencarian. Klausul berikut didukung: config clause, query clause, sort clause, filter clause, aggregate clause, distinct clause, dan kvpairs clause. | ||
fetch_fields | string | Semua bidang tampilan | Bidang yang akan diambil dalam pencarian ini. Pisahkan beberapa bidang dengan titik koma ( | ||
qp | string | Aturan yang tersedia | Aturan analisis query yang akan digunakan. Pisahkan beberapa aturan dengan koma ( | ||
disable | string | Tidak | Menonaktifkan fitur yang diaktifkan yang ditentukan oleh parameter tertentu. | ||
first_rank_name | string | Nama ekspresi sortir kasar default | Nama ekspresi sortir kasar. | ||
second_rank_name | string | Nama ekspresi sortir halus default | Nama ekspresi sortir halus. | ||
user_id | string | Tidak | ID pengguna Anda yang memulai permintaan pencarian. Nilai valid: ID anggota panjang pengguna Anda dan Identitas Peralatan Bergerak Internasional (IMEI) perangkat seluler pengguna Anda. Yang pertama lebih diutamakan daripada yang terakhir. | ||
abtest | string | Tidak | Parameter ini diperlukan jika Anda menggunakan fitur Uji A/B. | ||
raw_query | string | Tidak | Parameter ini diperlukan untuk melatih algoritma seperti prediksi kategori. Kami sarankan Anda menyetel parameter ini untuk semua permintaan pencarian. | ||
re_search | string | Tidak | Kebijakan pencarian ulang. Kebijakan pencarian ulang dapat dikonfigurasikan hanya berdasarkan ambang batas total hit. | ||
biz | string | Tidak | Informasi bisnis tentang permintaan pencarian, seperti jenis bisnis sumber dari mana permintaan pencarian dikirim. | ||
summary | string | Pengaturan ringkasan hasil pencarian di OpenSearch | Pengaturan ringkasan hasil pencarian. Anda dapat menentukan bidang tertentu yang ingin disorot merah atau dipotong. | ||
from_request_id | string | Tidak | Permintaan sumber yang membimbing permintaan pencarian ini. Jika kueri pencarian direkomendasikan oleh fitur seperti saran drop-down, pencarian teratas, dan petunjuk, Anda dapat menetapkan ID permintaan pencarian yang mencari kueri pencarian yang direkomendasikan ke parameter ini. Dengan cara ini, berbagai metrik fitur dapat dihitung. Anda dapat menilai efek fitur berdasarkan metrik dan mengoptimalkan fitur berdasarkan hasil penilaian. Untuk informasi lebih lanjut, lihat Saran drop-down. | ||
query clause | string | Ya | Menentukan kondisi pencarian. | ||
config clause | string | Ya | Menentukan format hasil pencarian dan jumlah dokumen yang diambil. | ||
filter clause | string | Menentukan kondisi filter. | |||
sort clause | string | Menentukan kondisi yang digunakan untuk mengurutkan dokumen. Klausul sortir mendukung pengurutan berdasarkan satu bidang bertipe INT. Versi API OpenSearch dan SDK OpenSearch harus V3. | |||
fetch_fields | string | Bidang yang akan dikembalikan dalam hasil pencarian. |
Penggunaan parameter permintaan
query: Anda dapat menentukan beberapa klausa untuk memenuhi berbagai kebutuhan pencarian. Klausul dalam parameter query dihubungkan oleh
&&.fetch_fields: Ukuran data teks yang dikembalikan memiliki dampak besar pada kinerja pencarian. Kami sarankan Anda hanya mengembalikan bidang yang diperlukan. Parameter fetch_fields yang disetel dalam SDK atau operasi API lebih diutamakan daripada bidang tampilan default yang ditentukan di konsol OpenSearch.
qp: Parameter qp yang disetel dalam SDK atau operasi API lebih diutamakan daripada aturan analisis query yang ditentukan di konsol OpenSearch.
disable: Anda dapat menonaktifkan fitur yang ditentukan oleh parameter seperti qp, summary, first_rank, second_rank, dan re_search.
Deskripsi
Anda dapat menggunakan parameter ini untuk menonaktifkan fitur tertentu selama pencarian.
Anda dapat menonaktifkan fitur seperti analisis query, sorotan merah, sortir kasar dan halus, dan pencarian ulang.
Format Parameter:
disable=function[;function] function=function_name[:function_param]Contoh:
Nonaktifkan fitur analisis query: disable=qp
Nonaktifkan fitur koreksi ejaan dalam analisis query: disable=qp:spell_check
Nonaktifkan fitur pencarian ulang: disable=re_search
first_rank_name: Parameter first_rank_name yang disetel dalam SDK atau operasi API lebih diutamakan daripada ekspresi sortir kasar yang ditentukan di konsol OpenSearch.
second_rank_name: Parameter second_rank_name yang disetel dalam SDK atau operasi API lebih diutamakan daripada ekspresi sortir halus yang ditentukan di konsol OpenSearch.
user_id:
Saat Anda menyetel parameter ini dalam permintaan pencarian, Anda harus melakukan pengkodean URL pada nilai parameter ini.
Statistik tentang pengunjung unik (UV) dikumpulkan berdasarkan parameter ini saat fitur statistik data digunakan.
Jika fitur pengumpulan data digunakan, kami sarankan Anda menyetel parameter user_id saat Anda melaporkan data perilaku dengan cara yang sama seperti Anda menyetel parameter user_id dalam permintaan pencarian.
Format Parameter abtest:
abtest=urlencode(scene_tag:urlencode(\$scene),flow_divider:urlencode(\$value)), di mana urlencode adalah fungsi pengkodean URL.Kami sarankan Anda mengganti flow_divider dengan ID pengguna Anda. Anda dapat menggunakan ID perangkat atau alamat IP pengguna Anda sebagai alternatif. Parameter ini diperlukan.
scene_tag: Indikator adegan uji. Jika Anda tidak mengonfigurasi tes untuk permintaan pencarian di semua adegan, parameter ini tidak diperlukan.
raw_query:
Deskripsi
Parameter ini digunakan untuk pencarian berdasarkan prediksi kategori. Hasil pencarian diurutkan berdasarkan prediksi kategori hanya ketika kueri pencarian sama dengan nilai parameter raw_query.
Parameter ini digunakan untuk melatih algoritma seperti model prediksi kategori. Kami sarankan Anda menyetel parameter ini untuk semua permintaan pencarian.
Kami sarankan Anda menyetel parameter ini ke kueri pencarian yang dimasukkan oleh pengguna Anda.
Format Parameter:
raw_query=contentcontent: Kueri pencarian asli.
re_search:
Deskripsi
Parameter ini digunakan untuk mengonfigurasi kebijakan pencarian ulang. Kebijakan pencarian ulang dapat dikonfigurasikan hanya berdasarkan ambang batas total hit.
Format Parameter:
re_search=strategy:threshold,params:total_hits#${COUNT}COUNT: Jumlah minimum total hit yang diizinkan jika Anda tidak ingin memicu pencarian ulang. Ketika jumlah total hit kurang dari nilai parameter COUNT, pencarian ulang dilakukan.
Contoh:
re_search=url_encode(strategy:threshold,params:total_hits#6)
biz:
Deskripsi
Parameter ini digunakan untuk menggambarkan informasi bisnis tentang permintaan, seperti jenis bisnis sumber dari mana permintaan pencarian dikirim.
Format Parameter:
biz=type:$TYPEtype: Jenis sumber dari mana permintaan pencarian dikirim. Anda dapat menyesuaikan nilai parameter ini. Parameter ini membantu mengumpulkan statistik tentang sumber permintaan dalam laporan.
Contoh:
biz=type:home_page
summary:
Parameter summary_element_prefix dan summary_element_postfix harus digunakan berpasangan.
Parameter summary_element dan pasangan summary_element_prefix dan summary_element_postfix saling memengaruhi. Konfigurasi yang muncul kemudian lebih diutamakan daripada konfigurasi yang muncul sebelumnya.
Ringkasan dan pengaturan yang digunakan untuk menyorot istilah merah tidak dapat dikonfigurasi secara terpisah.
Parameter summary yang disetel dalam SDK atau operasi API lebih diutamakan daripada pengaturan ringkasan hasil pencarian di konsol OpenSearch.
Parameter | Tipe | Wajib | Nilai valid | Nilai default | Deskripsi |
summary_field | string | Ya | Bidang yang ingin Anda konfigurasikan ringkasannya. | ||
summary_element | string | Tidak | em | Tag HTML yang digunakan untuk menyorot istilah merah. Tanda kurung sudut kiri dan kanan dihapus dari tag HTML. | |
summary_ellipsis | string | Tidak | ... | Elipsis (...) di akhir ringkasan. | |
summary_snipped | int | Tidak | 1 | Jumlah segmen yang diperlukan dalam ringkasan. | |
summary_len | string | Tidak | Panjang ringkasan. | ||
summary_element_prefix | string | Tidak | Awalan yang digunakan untuk menyorot istilah merah. Awalan harus berupa tag HTML lengkap, seperti <em>. | ||
summary_element_postfix | string | Tidak | Akhiran yang digunakan untuk menyorot istilah merah. Akhiran harus berupa tag HTML lengkap, seperti </em>. |
Parameter respons
Parameter | Tipe | Deskripsi |
status | string | Hasil eksekusi pencarian. Nilai valid: OK dan FAIL. Nilai OK menunjukkan bahwa pencarian berhasil. Nilai FAIL menunjukkan bahwa pencarian gagal. Dalam hal ini, perbaiki kesalahan berdasarkan kode kesalahan. |
request_id | string | ID permintaan, yang digunakan untuk pemecahan masalah. |
result | string | Informasi tentang hasil pencarian, yang mencakup parameter searchtime, total, num, viewtotal, items, dan facet. |
errors | string | Informasi kesalahan, di mana parameter error_message menunjukkan pesan kesalahan. Untuk informasi lebih lanjut tentang kode kesalahan, lihat Kode kesalahan. |
searchtime: Periode waktu yang dibutuhkan oleh mesin untuk menyelesaikan pencarian. Unit: detik.
Perbedaan antara parameter total, viewtotal, dan num: Parameter total menunjukkan jumlah hasil yang memenuhi kondisi di mesin untuk pencarian tunggal tanpa memperhatikan klausa config. Jika jumlah hasilnya besar, nilai parameter total dioptimalkan. Namun, untuk memastikan kinerja pencarian dan relevansi, mesin mengembalikan hasil dengan jumlah yang kurang dari atau sama dengan nilai parameter viewtotal. Jika Anda memerlukan paging, jumlah nilai parameter
start and hitharus kurang dari nilai parameter viewtotal. Parameter total biasanya digunakan untuk tampilan. Parameter num menunjukkan jumlah entri yang dikembalikan untuk permintaan pencarian ini. Nilai parameter ini dibatasi oleh parameter start dan hit dalam klausa config dan tidak melebihi nilai parameter hit.items: Hasil pencarian. Parameter fields menunjukkan konten hasil pencarian.
variableValue: Nilai parameter kustom, seperti nilai parameter jarak. Parameter variableValue ditampilkan hanya ketika format dari config clause adalah
XMLataufullJSON, dan tidak ditampilkan ketika formatnya adalahJSONsecara default.sortExprValues: Skor sortir dokumen.
facet: Statistik yang dikembalikan oleh klausa aggregate.
Bidang Tipe ARRAY: Jika respons dalam format JSON atau fullJSON, data dipisahkan oleh karakter tab (\t). Jika respons dalam format XML, data dipisahkan oleh spasi.
Contoh respons pencarian
Respons dalam Format JSON
{
"status": "OK",
"request_id": "155310917017444091100003",
"result": {
"searchtime": 0.031081,
"total": 1,
"num": 1,
"viewtotal": 1,
"compute_cost": [
{
"index_name": "84922",
"value": 0.292
}
],
"items": [
{
"cat_id": "84922",
"text_field": "Legenda bola basket Kobe suka meinv",
"index_name": "84922"
}
],
"facet": []
},
"qp": [
{
"app_name": "84922",
"query_correction_info": [
{
"index": "default",
"original_query": "Applet iphone charger",
"corrected_query": "Apple iphone charger",
"correction_level": 1,
"processor_name": "spell_check"
}
]
}
],
"errors": [],
"tracer": "",
"ops_request_misc": "%7B%22request%5Fid%22%3A%22155310917017444091100003%22%7D"
}Respons Kesalahan
{
"status": "OK",
"request_id": "150149648719953661651650",
"result": {
"searchtime": 0.402225,
"total": 1,
"num": 0,
"viewtotal": 0,
"items": [
{
"fields": {
"id": "10",
"name": "Ini adalah judul dokumen baru ",
"phone": "13900001111",
"index_name": "app_schema_demo"
},
"property": {},
"attribute": {},
"variableValue": {},
"sortExprValues": [
"10",
"10000.1354238242"
]
}
],
"facet": []
},
"errors": [
{
"code": 1000,
"message": "Kesalahan server."
}
],
"tracer": "",
"ops_request_misc":"%7B%22request%5Fid%22%3A%22156680563319723149105067%22%2C%22scm%22%3A%2220140713.115106..%22%7D"
}Catatan: Nilai parameter status adalah FAIL ketika terjadi kesalahan, dan tidak ada hasil yang dikembalikan. Nilai parameter status adalah OK ketika baik kesalahan maupun hasil dikembalikan. Jika terjadi kesalahan seperti 1000 server error yang menunjukkan bahwa waktu pencarian habis atau 2112 yang menunjukkan bahwa indeks yang ditentukan dalam penyortiran halus tidak valid, hasil mungkin tetap dikembalikan.
Pencarian Gulir
Untuk pencarian reguler, tujuannya adalah untuk mengambil hasil yang paling sesuai dalam waktu sesingkat mungkin. Oleh karena itu, jumlah dokumen yang dapat disertakan dalam hasil pengembalian dibatasi. Sebagai contoh, hasil pengembalian dari pencarian reguler tidak dapat berisi lebih dari 5.000 dokumen. Namun, dalam beberapa skenario, Anda mungkin memerlukan lebih banyak hasil untuk analisis. Dalam hal ini, Anda dapat menggunakan pencarian gulir untuk mendapatkan lebih banyak hasil pencarian.
Klausa yang Didukung
Klausa query.
Klausa config: Parameter start tidak valid.
Klausa filter.
Klausa sort, yang mendukung pengurutan berdasarkan satu field bertipe INT. Versi dari OpenSearch API dan OpenSearch SDK harus V3.
URL
Pencarian Pertama
/v3/openapi/apps/$app_name/search?search_type=scan&scroll=1m& Parameter permintaan
Pencarian Selanjutnya
/v3/openapi/apps/$app_name/search?scroll_id=$scroll_id&scroll=1m& Parameter permintaan
$app_name: Nama aplikasi.
URL contoh juga menghilangkan titik akhir yang digunakan untuk terhubung ke OpenSearch.
Dua URL permintaan gulir sebelumnya menghilangkan informasi seperti parameter dalam header permintaan dan metode pengkodean. Untuk informasi lebih lanjut tentang URL permintaan gulir lengkap, lihat bagian "Contoh Pencarian Gulir" dari topik ini.
Pencarian gulir mendukung sejumlah fitur terbatas, dan sebagian besar fitur tidak didukung. Untuk informasi lebih lanjut tentang batasan fitur pencarian gulir, lihat catatan di bagian "Contoh Pencarian Gulir" dari topik ini.
Protokol
HTTP
Metode permintaan HTTP
GET
Format yang didukung
JSON
Parameter permintaan
Parameter | Tipe | Diperlukan | Nilai valid | Nilai default | Deskripsi |
scroll | STRING | Ya | Anda dapat menetapkan nilai dalam satuan minggu, hari, jam, menit, atau detik. | Masa berlaku ID scroll yang akan dikembalikan untuk eksekusi pertama pencarian scroll, dalam satuan minggu (w), hari (d), jam (h), menit (m), atau detik (s). Contoh: 1m. | |
search_type | STRING | Ya | scan | Tipe pencarian scroll. Anda hanya perlu menentukan parameter ini untuk eksekusi pertama pencarian scroll. Untuk eksekusi selanjutnya dari pencarian scroll, Anda dapat menentukan parameter scroll_id. | |
scroll_id | string | Ya | ID yang dikembalikan untuk pencarian scroll. Saat Anda menjalankan pencarian scroll untuk pertama kali, hanya ID scroll yang dikembalikan. Untuk mendapatkan hasil pencarian, gunakan ID ini untuk menjalankan pencarian scroll lagi. Untuk eksekusi selanjutnya dari pencarian scroll, ID ini diperlukan sebagai parameter permintaan dan dikembalikan sebagai parameter respons. | ||
klausa query | string | Ya | Menentukan kondisi pencarian. | ||
klausa config | string | Ya | Menentukan format hasil pencarian dan jumlah dokumen yang diambil. | ||
klausa filter | string | Menentukan kondisi filter. | |||
klausa sort | string | Menentukan kondisi yang digunakan untuk mengurutkan dokumen. Klausa sort mendukung pengurutan berdasarkan satu bidang bertipe INT. Versi OpenSearch API dan OpenSearch SDK harus V3. | |||
fetch_fields | string | Bidang yang akan dikembalikan dalam hasil pencarian. |
Parameter respons
Parameter | Tipe | Deskripsi |
status | string | Hasil eksekusi pencarian. Nilai yang valid: OK dan FAIL. Nilai OK menunjukkan bahwa pencarian berhasil. Nilai FAIL menunjukkan bahwa pencarian gagal. Dalam hal ini, lakukan pemecahan masalah berdasarkan kode kesalahan. |
request_id | string | ID permintaan, yang digunakan untuk pemecahan masalah. |
result | string | Hasil yang dikembalikan, yang mencakup parameter searchtime, total, num, viewtotal, items, facet, dan scroll_id. |
errors | string | Informasi kesalahan, di mana parameter error_message menunjukkan pesan kesalahan. Untuk informasi lebih lanjut tentang kode kesalahan, lihat Kode kesalahan. |
Hasil pengembalian dari pencarian gulir hanya mendukung format fullJSON dan JSON.
Pencarian gulir sampel
Saat Anda menjalankan pencarian gulir, parameter start yang Anda tentukan dalam klausa config tidak berpengaruh. Anda dapat menggunakan parameter hit dalam klausa config untuk menentukan jumlah dokumen yang akan dikembalikan untuk setiap eksekusi. Pencarian gulir tidak mendukung klausa aggregate, distinct, dan rank. Pencarian gulir mendukung pengurutan berdasarkan satu bidang bertipe INT. Pencarian gulir lintas aplikasi tidak didukung. Jika nilai parameter scroll_id dalam permintaan tidak valid, akan terjadi kesalahan. Hasil yang dikembalikan dari pencarian gulir hanya mendukung format fullJSON dan JSON. Saat Anda menjalankan pencarian gulir untuk pertama kalinya, hanya ID gulir yang dikembalikan. Untuk mendapatkan data dokumen, gunakan ID ini untuk menjalankan pencarian gulir kembali.
Permintaan Pertama
Contoh permintaan API menghilangkan informasi seperti parameter dalam header permintaan dan metode pengkodean.
http://$host/v3/openapi/apps/app_schema_demo/search?query=config=start:0,hit:1,format:fulljson,rerank_size:200&&query=name:'Search'&&sort=+ id&&filter=id>0&search_type=scan&scroll=1m&fetch_fields=id;name;phone;int_arr;literal_arr;float_arr;cate_idRespon Sukses
{
"status": "OK",
"request_id": "150150574119953661605242",
"result": {
"searchtime": 0.005029,
"total": 1,
"num": 0,
"viewtotal": 1,
"scroll_id": "eJxtUMtuhDAM/BrvOYQC5cABdulvRFFIirsm2TpBavv1Ndut1EMlS36NZ0Y2ZHMxbueceAjIuWCMnrPjRITLyfzZm83y9V QVGT8x80U3PxQNUqieVZV1/an4ItbTUBPSx5wgXqKdvOSbmuKR8ZYjGWWirB4tvToAiX7u3G2eCNK77vnz8GlGPAV6suKBeqxAn0OiTd7NGEnesspyoyFLF6hecn4JUKjVgp0K3FnkfMfIyPoDuYWegX9GeYOpicY9TG8gwOSuBL04X1 MMg3ROwCesLlG6X7a2o=",
"items": [],
"facet": []
},
"errors": [],
"tracer": ""
}Permintaan Berikutnya
Contoh permintaan API menghilangkan informasi seperti parameter dalam header permintaan dan metode pengkodean.
http://$host/v3/openapi/apps/app_schema_demo/search?fetch_fields=id;name;phone;int_arr;literal_arr;float_arr;cate_id&query=config=start:0,hit:1,format:fulljson,rerank_size:200&&query=name:'search'&&sort=+id&&filter=id>0&scroll=1m&scroll_id=eJxtUMtuhDAM/BrvOYQC5cABdulvRFFIirsm2TpBavv1Ndut1EMlS36NZ0Y2ZHMxbueceAjIuWCMnrPjRITLyfzZm83y9V+QVGT8x80U3PxQNUqieVZV1/an4ItbTUBPSx5wgXqKdvOSbmuKR8ZYjGWWirB4tvToAiX7u3G2eCNK77vnz8GlGPAV6suKBeqxAn0OiTd7NGEnesspyoyFLF6hecn4JUKjVgp0K3FnkfMfIyPoDuYWegX9GeYOpicY9TG8gwOSuBL04X1+MMg3ROwCesLlG6X7a2o=Respons
{
"status": "OK",
"request_id": "150150574119952551519970",
"result": {
"searchtime": 0.006293,
"total": 1,
"num": 1,
"viewtotal": 1,
"scroll_id": "eJxNT9tugzAM/RrznIRC4YEHaNlvRFFIhteQtE6Qtn39TNdJk2z5dnx8rIPJRdudcqKhl60Uir2Vp06ISv8b6s3QbZCVzpaCdp93XXBzg2wEW9MJ2dWq8q7YVXt0YckDLlBP0WyOw31N8YgYizZEnAUsjkx4VT4k8zexpjiNS/XYHX0NNkWP71BfVyxQjxLUxSfazFH4PYSPnCL3iMniDZq3jN98aFRCgGrZniy8/itkBHWGuYVeQH+B+QzTCUZ1NJ9gj4FVMfrQPr8Y+Hk+dgU14fIDVhtfTw==",
"items": [
{
"fields": {
"cate_id": "0",
"float_arr": "0",
"id": "1",
"int_arr": "0",
"literal_arr": "Search",
"name": "Search",
"phone": "13900001111",
"index_name": "app_schema_demo"
},
"property": {},
"attribute": {},
"variableValue": {},
"sortExprValues": [
"1"
]
}
],
"facet": []
},
"errors": [],
"tracer": ""
}