Sistem menyediakan sintaks pencarian yang kaya untuk memenuhi kebutuhan pencarian 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. Edisi Premium dan Standard Edition merupakan versi multi-aplikasi. Anda harus menentukan nama aplikasi untuk mengakses aplikasi yang sedang dalam layanan.
URL di atas menghilangkan header permintaan, encoding, dan faktor lainnya.
URL di atas menghilangkan alamat host untuk mengakses aplikasi.
Untuk definisi, penggunaan, dan contoh parameter kueri dalam URL di atas, lihat bagian **Parameter kueri** di bawah ini.
Protokol permintaan
HTTP
Metode permintaan
GET
Format yang didukung
JSON
Parameter kueri
Untuk detail cara menggabungkan parameter kueri, lihat dokumen mekanisme penandatanganan API v3.
Parameter | Tipe | Wajib | Nilai valid | Nilai default | Deskripsi |
query | string | Ya | Badan utama pencarian. Parameter ini tidak boleh kosong. Mendukung klausa seperti config, query, sort, filter, aggregate, distinct, dan kvpair. | ||
fetch_fields | string | Tidak | Semua bidang displayable. | Menentukan bidang yang akan dikembalikan dalam hasil kueri. Pisahkan beberapa bidang dengan titik koma ( | |
disable | string | Tidak | Menonaktifkan fitur parameter tertentu yang sedang aktif. | ||
first_rank_name | string | Tidak | Nama ekspresi pengurutan kasar default di sistem. | Menetapkan nama fungsi pengurutan kasar. Hanya satu nama pengurutan kasar yang didukung. | |
second_rank_name | string | Tidak | Nama ekspresi penyortiran default untuk layanan | Menetapkan nama fungsi pengurutan presisi. Hanya satu nama pengurutan presisi yang didukung. | |
user_id | string | Tidak | Mengidentifikasi end user yang memulai permintaan pencarian saat ini. Parameter ini dapat diatur ke salah satu nilai berikut, diurutkan berdasarkan prioritas menurun: 1. ID logon jangka panjang end user. 2. IMEI perangkat seluler end user. | ||
re_search | string | Tidak | Menetapkan kebijakan penelusuran ulang. Saat ini, Anda hanya dapat menetapkan kebijakan berdasarkan ambang batas total hits. | ||
biz | string | Tidak | Menjelaskan informasi bisnis terkait permintaan, seperti jenis bisnis tempat permintaan berasal. | ||
summary | string | Tidak | Mengambil konfigurasi ringkasan hasil pencarian sistem. | Mengonfigurasi ringkasan hasil pencarian. Anda dapat menentukan bidang untuk penyorotan, pemotongan, dan operasi lainnya. | |
query clause | string | Ya | Menetapkan kondisi pencarian. | ||
config clause | string | Tidak | Menetapkan format data dan jumlah dokumen yang akan dikembalikan. | ||
filter clause | string | Tidak | Menetapkan kondisi filter. | ||
sort clause | string | Tidak | Menetapkan kondisi pengurutan dokumen. Hanya mendukung pengurutan berdasarkan satu bidang bertipe int. Ini terbatas pada API v3 dan SDK. |
Penggunaan parameter kueri
query: Parameter `query` dapat menggabungkan beberapa klausa untuk memenuhi beragam kebutuhan pencarian. Klausa dalam parameter `query` dihubungkan oleh
&&.fetch_fields: Ukuran data teks yang dikembalikan berdampak signifikan terhadap kinerja. Ambil hanya bidang yang diperlukan. Jika parameter ini dikonfigurasi di SDK atau API, maka akan menggantikan konfigurasi terkait di Konsol.
qp: Jika parameter ini dikonfigurasi di SDK atau API, maka akan menggantikan konfigurasi terkait di Konsol.
Catatan: Anda dapat melihat efek dan hasil `qp` pada halaman uji pencarian di Konsol. API dan SDK saat ini tidak mengekspos informasi ini.
disable: Anda dapat menggunakan parameter ini untuk menonaktifkan fitur-fitur untuk parameter seperti `qp`, `summary`, `first_rank`, `second_rank`, dan `re_search`.
Deskripsi fitur
Parameter ini mengontrol apakah fitur tertentu dinonaktifkan selama kueri.
Anda dapat menonaktifkan fitur seperti analisis query, penyorotan, pengurutan kasar dan presisi, serta penelusuran ulang.
Format parameter:
disable=function[;function] function=function_name[:function_param]Contoh:
Untuk menonaktifkan analisis query, atur `disable=qp`.
Untuk menonaktifkan fitur `spell_check` dalam analisis query, atur `disable=qp:spell_check`.
Untuk menonaktifkan penelusuran ulang, atur `disable=re_search`.
first_rank_name: Jika parameter ini dikonfigurasi di SDK atau API, maka akan menggantikan konfigurasi terkait di Konsol.
second_rank_name: Jika parameter ini dikonfigurasi di SDK atau API, maka akan menggantikan konfigurasi terkait di Konsol.
user_id:
Saat Anda mengatur parameter ini dalam permintaan pencarian, nilai `user_id` harus di-URL-encode.
raw_query:
Deskripsi fitur
Parameter ini menentukan kueri pencarian asli yang dimasukkan oleh end user.
Format parameter:
raw_query=contentcontent: Kueri pencarian asli.
re_search:
Deskripsi fitur
Parameter ini menetapkan kebijakan penelusuran ulang. Saat ini, Anda hanya dapat menetapkan kebijakan berdasarkan ambang batas total hits.
Format parameter:
re_search=strategy:threshold,params:total_hits#${COUNT}COUNT: Batas atas untuk `total_hits` yang memicu penelusuran ulang. Penelusuran ulang dilakukan jika `total_hits` kurang dari COUNT.
Contoh:
re_search=url_encode(strategy:threshold,params:total_hits#6)
biz:
Deskripsi fitur
Parameter ini menjelaskan informasi bisnis terkait permintaan, seperti jenis bisnis tempat permintaan berasal.
Format parameter:
biz=type:$TYPEtype: Jenis traffic. Anda dapat menentukan nilainya. Anda dapat menggunakan nilai ini nanti untuk membedakan sumber traffic berbeda dalam laporan.
Contoh:
biz=type:home_page
vector_threshold:
Deskripsi fitur
Parameter ini mengontrol ambang batas skor vektor untuk pemanggilan dokumen dalam pencarian vektor. Hanya dokumen dengan skor vektor kurang dari nilai ini yang dikembalikan.
Format parameter:
vector_threshold=14.0Nilainya adalah bilangan titik mengambang.
Parameter ini opsional. Jika tidak diatur, sistem menggunakan ambang batas bawaan.
summary:
Parameter `summary_element_prefix` dan `summary_element_postfix` harus diatur secara bersamaan.
Parameter `summary_element` dan pasangan (`summary_element_prefix`, `summary_element_postfix`) saling memengaruhi. Konfigurasi yang muncul belakangan akan menggantikan yang muncul lebih awal.
Saat ini, Anda tidak dapat mengonfigurasi ringkasan dan penyorotan secara terpisah.
Jika parameter ini dikonfigurasi di SDK atau API, maka akan menggantikan konfigurasi terkait di Konsol.
Parameter | Tipe | Wajib | Nilai valid | Nilai default | Deskripsi |
summary_field | string | Ya | Bidang yang akan diringkas. | ||
summary_element | string | Tidak | em | Tag penyorotan adalah tag HTML tanpa tanda kurung sudutnya. | |
summary_ellipsis | string | Tidak | … | Tanda elipsis di akhir ringkasan. | |
summary_snipped | int | Tidak | 1 | Jumlah cuplikan ringkasan yang dipilih. | |
summary_len | string | Tidak | Panjang cuplikan ringkasan yang ditampilkan. | ||
summary_element_prefix | string | Tidak | Awalan untuk penyorotan. Harus berupa tag HTML lengkap, seperti <em>. | ||
summary_element_postfix | string | Tidak | Akhiran untuk penyorotan. Harus berupa tag HTML lengkap, seperti </em>. |
Hasil pengembalian
Parameter | Tipe | Deskripsi |
status | string | Hasil eksekusi. `OK` menunjukkan sukses. `FAIL` menunjukkan gagal. Jika permintaan gagal, lakukan troubleshooting berdasarkan kode kesalahan yang dikembalikan. |
request_id | string | ID catatan kueri. Terutama digunakan untuk troubleshooting. |
result | JSON | Hasil aktual. Termasuk informasi seperti waktu kueri (`searchtime`), jumlah total hasil dari engine (`total`), jumlah hasil yang dikembalikan untuk permintaan saat ini (`num`), jumlah maksimum hasil yang dapat dikembalikan untuk kueri (`viewtotal`), hasil kueri (`items`), dan hasil statistik (`facet`). |
errors | list | Kode kesalahan dan pesan. `message` merepresentasikan pesan kesalahan. Untuk makna `code`, lihat dokumen Deskripsi Kode Kesalahan. |
searchtime: Waktu, dalam detik, yang dikonsumsi engine untuk memproses permintaan.
Perbedaan antara `total`, `viewtotal`, dan `num`: `total` adalah jumlah hasil yang memenuhi kondisi kueri di engine, tanpa mempertimbangkan klausa `config`. Nilai ini merupakan perkiraan ketika ada banyak hasil dan umumnya digunakan untuk tujuan tampilan. `viewtotal` adalah jumlah maksimum hasil yang dikembalikan engine karena alasan kinerja dan relevansi. Untuk melakukan paging melalui hasil, `start` + `hit` harus kurang dari `viewtotal`. `num` adalah jumlah aktual item yang dikembalikan untuk permintaan saat ini. Nilai ini dibatasi oleh parameter `start` dan `hit` dalam klausa `config` dan tidak melebihi nilai `hit`.
compute_cost: Array yang berisi satu elemen map. `index_name` adalah ID aplikasi, dan `value` adalah jumlah Logic Compute Unit (LCU) yang dikonsumsi oleh kueri.
items: Berisi data yang diambil. Parameter fields berisi konten hasil pencarian.
variableValue: Hasil pengembalian parameter kustom, seperti nilai jarak. Node `variableValue` hanya ditampilkan jika format dalam klausa config diatur ke
xmlataufulljson. Secara default, node ini tidak ditampilkan dalam format `json`.sortExprValues: Skor pengurutan dokumen terkait.
facet: Menyimpan informasi yang dikembalikan oleh klausa Aggregate.
Tipe bidang array: Jika bidang array dikembalikan dalam format `json` atau `fulljson`, datanya dipisahkan oleh `\t`. Jika dikembalikan dalam format `xml`, datanya dipisahkan oleh spasi.
Contoh pencarian
Respons JSON
{
"result": {
"searchtime": 0.009554,
"total": 1,
"compute_cost": [
{
"index_name": "110247758",
"value": 0.304
}
],
"num": 1,
"viewtotal": 1,
"items": [
{
"variableValue": {
},
"sortExprValues": [
"10000"
],
"property": {
},
"attribute": {
},
"fields": {
"size": "XL",
"discount_price": "9.9",
"pid": "950",
"range_age": "18\t25",
"detail": "Men's jacket lapel 2021 spring and autumn new youth thin top casual zipper jacket",
"index_name": "110247758"
}
}
],
"facet": []
},
"ops_request_misc": "%7B%22request%5Fid%22%3A%22162642700916781929257960%22%2C%22scm%22%3A%2220140713.110229359..%22%7D",
"tracer": "",
"request_id": "162642700916781929257960",
"errors": [],
"status": "OK"
}Respons kesalahan
{
"result": {
"searchtime": 0.003999,
"total": 0,
"compute_cost": [
{
"index_name": "110247758",
"value": 0.232
}
],
"num": 0,
"viewtotal": 0,
"items": [],
"facet": []
},
"ops_request_misc": "%7B%22request%5Fid%22%3A%22162642716516781913069826%22%2C%22scm%22%3A%2220140713.110229359..%22%7D",
"tracer": "",
"request_id": "162642716516781913069826",
"errors": [
{
"code": 6127,
"message": "Attribute not exist."
}
],
"status": "FAIL"
}Catatan: Status `FAIL` menunjukkan terjadi kesalahan dan tidak ada hasil yang dikembalikan. Namun, dalam beberapa kasus, baik kesalahan maupun hasil dapat dikembalikan. Dalam kasus tersebut, statusnya adalah `OK`. Misalnya, jika terjadi `kesalahan server 1000` (timeout pencarian) atau kesalahan `2112` (indeks untuk pengurutan presisi tidak ditentukan), hasil mungkin tetap dikembalikan.
Pemindaian scroll
Pencarian tradisional dirancang untuk mengambil hasil paling relevan dalam waktu sesingkat mungkin. Oleh karena itu, jumlah hasil pencarian dibatasi. Misalnya, metode pencarian dapat mengambil maksimal 5.000 dokumen. Dalam beberapa skenario, Anda mungkin perlu mengambil lebih banyak hasil untuk analisis. Anda dapat menggunakan API scroll untuk mengambil jumlah hasil yang lebih besar.
Klausa yang didukung
Klausa `query`.
Klausa `config`. Parameter `start` tidak valid dalam klausa ini.
Klausa `filter`.
Klausa `sort`. Klausa ini hanya mendukung pengurutan berdasarkan satu bidang bertipe `int` dan terbatas pada API v3 dan SDK.
URL
Kueri awal
/v3/openapi/apps/$app_name/search?search_type=scan&scroll=1m&query_parameters
Kueri berikutnya
/v3/openapi/apps/$app_name/search?scroll_id=$scroll_id&scroll=1m&query_parameters
$app_name: Nama aplikasi.
URL di atas menghilangkan alamat host untuk mengakses aplikasi.
URL permintaan scroll di atas menghilangkan header permintaan, konten parameter kueri, encoding, dan faktor lainnya. Untuk URL permintaan scroll lengkap, lihat contoh di bawah.
Metode scroll memiliki fungsionalitas terbatas dan tidak mendukung sebagian besar fitur. Untuk informasi lebih lanjut tentang batasan spesifik, lihat catatan di bagian bawah.
Protokol permintaan
HTTP
Metode permintaan HTTP
GET
Format yang didukung
JSON
Parameter kueri
Parameter | Tipe | Wajib | Nilai valid | Nilai default | Deskripsi |
scroll | STRING | Ya | Minggu, Hari, Jam, menit, detik | Menentukan periode validitas untuk permintaan scroll berikutnya. Anda harus mengatur parameter ini untuk setiap permintaan. Misalnya, `1m` berarti 1 menit. Satuan waktu yang didukung meliputi: `w` untuk Minggu, `d` untuk Hari, `h` untuk Jam, `m` untuk menit, dan `s` untuk detik. | |
search_type | STRING | Ya | scan | Parameter ini wajib untuk kueri pertama. Tidak diperlukan untuk kueri berikutnya. Kueri berikutnya dilakukan dengan menentukan `scroll_id`. | |
scroll_id | string | Ya | Pemanggilan pertama ke metode scroll mengembalikan `scroll_id` tetapi tidak menyertakan data. Untuk setiap pencarian berikutnya, Anda harus menentukan `scroll_id` dari respons sebelumnya. Hasil pencarian berikutnya akan menyertakan `scroll_id` baru dan data terkait. Parameter ini wajib untuk semua kueri berikutnya. | ||
query clause | string | Ya | Menetapkan kondisi pencarian. | ||
config clause | string | Ya | Menetapkan format data dan jumlah dokumen yang akan dikembalikan. | ||
filter clause | string | Tidak | Menetapkan kondisi filter. | ||
sort clause | string | Tidak | Menetapkan kondisi pengurutan dokumen. Hanya mendukung pengurutan berdasarkan satu bidang bertipe int. Ini terbatas pada API v3 dan SDK. | ||
fetch_fields parameter | string | Tidak | Menentukan bidang aplikasi mana yang akan dikembalikan. |
Hasil pengembalian
Parameter | Tipe | Deskripsi |
status | string | Hasil eksekusi. `OK` menunjukkan sukses. `FAIL` menunjukkan gagal. Jika permintaan gagal, lakukan troubleshooting berdasarkan kode kesalahan yang dikembalikan. |
request_id | string | ID catatan kueri. Terutama digunakan untuk troubleshooting. |
result | string | Hasil aktual. Termasuk informasi seperti waktu kueri (`searchtime`), jumlah total hasil dari engine (`total`), jumlah hasil yang dikembalikan untuk permintaan saat ini (`num`), jumlah maksimum hasil yang dapat dikembalikan untuk kueri (`viewtotal`), hasil kueri (`items`), hasil statistik (`facet`), dan `scroll_id`. |
errors | string | Konten kesalahan. `error_message` merepresentasikan pesan kesalahan. Untuk informasi lebih lanjut tentang makna `error_code`, lihat dokumen Kode kesalahan. |
API scroll saat ini hanya mendukung format respons `fulljson` dan `json`.
Contoh scroll
Dalam klausa `config`, parameter `start` tidak valid. Anda dapat menggunakan parameter `hit` untuk mengatur jumlah dokumen yang diambil dalam setiap batch. Fitur seperti `aggregate`, `distinct`, dan ekspresi pengurutan kasar serta presisi tidak valid. Klausa `sort` hanya mendukung pengurutan berdasarkan satu bidang bertipe `int`. Kueri scroll lintas beberapa aplikasi tidak didukung. Jika Anda memberikan `scroll_id` yang tidak valid, kesalahan akan dilaporkan. Format respons yang didukung adalah `fulljson` dan `json`. Kueri pertama hanya mengembalikan `scroll_id` dan tidak ada data dokumen. Anda harus melakukan kueri lain dan memberikan `scroll_id` dari respons sebelumnya untuk mengambil data.
Permintaan pertama
Contoh ini menghilangkan header permintaan, encoding, dan faktor lainnya.
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_idRespons 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 ini menghilangkan detail seperti header permintaan dan encoding.
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=Nilai pengembalian
{
"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": "123****5678",
"index_name": "app_schema_demo"
},
"property": {},
"attribute": {},
"variableValue": {},
"sortExprValues": [
"1"
]
}
],
"facet": []
},
"errors": [],
"tracer": ""
}