Skenario
Pencarian reguler bertujuan untuk mengambil hasil yang paling relevan dalam waktu sesingkat mungkin. Oleh karena itu, jumlah dokumen dalam hasil dibatasi. Sebagai contoh, pencarian reguler dapat mengembalikan maksimal 5.000 dokumen. Namun, dalam beberapa kasus, Anda mungkin memerlukan lebih banyak hasil untuk analisis. Dalam situasi ini, Anda dapat menggunakan pencarian gulir untuk mendapatkan hasil tambahan.
Parameter
Parameter Permintaan
Parameter | Tipe | Diperlukan | Nilai valid | Nilai default | Deskripsi |
scroll | STRING | Ya | Nilai dalam satuan minggu, hari, jam, menit, atau detik | Masa berlaku ID gulir yang akan dikembalikan untuk eksekusi pertama pencarian gulir, dalam satuan minggu (w), hari (d), jam (h), menit (m), atau detik (s). Contoh: 1m. | |
search_type | STRING | Ya | scan | Jenis pencarian gulir. Anda perlu menentukan parameter ini hanya untuk eksekusi pertama pencarian gulir. Untuk eksekusi berikutnya dari pencarian gulir, Anda dapat menentukan parameter scroll_id. | |
scroll_id | STRING | Ya | ID gulir yang dikembalikan untuk pencarian gulir. Saat Anda menjalankan pencarian gulir untuk pertama kali, hanya ID gulir yang dikembalikan. Untuk mendapatkan hasil pencarian, gunakan ID ini untuk menjalankan pencarian gulir lagi. Untuk eksekusi berikutnya dari pencarian gulir, ID ini diperlukan sebagai parameter permintaan dan juga dikembalikan sebagai parameter respons. | ||
fetch_fields | STRING | Bidang yang akan dikembalikan dalam hasil pencarian. |
Parameter Respons
Parameter | Tipe | Deskripsi |
status | STRING | Hasil eksekusi permintaan. Nilai valid: OK dan FAIL. Nilai OK menunjukkan bahwa permintaan berhasil. Nilai FAIL menunjukkan bahwa permintaan gagal. Dalam hal ini, lakukan pemecahan masalah berdasarkan kode kesalahan. |
request_id | STRING | ID permintaan, yang digunakan untuk pemecahan masalah. |
result | STRING | Hasil pengembalian, 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 pencarian gulir hanya mendukung format fullJSON dan JSON.
Contoh respons
Respons untuk eksekusi pertama pencarian gulir:
{
"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": ""
}Respons untuk eksekusi berikutnya dari pencarian gulir:
{
"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",
"litteral_arr": "Search",
"name": "Search",
"phone": "1381111****",
"index_name": "app_schema_demo"
},
"property": {},
"attribute": {},
"variableValue": {},
"sortExprValues": [
"1"
]
}
],
"facet": []
},
"errors": [],
"tracer": ""
}Catatan Penggunaan
Pencarian gulir mendukung pengurutan berdasarkan satu bidang bertipe INT. Untuk mengimplementasikan fitur ini, pastikan versi OpenSearch API dan OpenSearch SDK adalah V3.
Guliran digunakan untuk mendapatkan semua hasil yang cocok dari pencarian dan tidak mendukung klausa aggregate dan distinct, ekspresi sort kasar dan halus, atau analisis kueri.
Saat menjalankan pencarian gulir, parameter start yang ditentukan dalam klausa config tidak berpengaruh. Nilai default 0 digunakan, yang menunjukkan bahwa Anda tidak dapat melewati halaman apa pun. Untuk kueri gulir, jumlah dokumen dalam setiap set hasil tidak boleh melebihi 500.
Saat menjalankan pencarian gulir untuk pertama kalinya , Anda perlu menentukan parameter hit. Jumlah dokumen yang dikembalikan dalam setiap set hasil ditentukan berdasarkan parameter hit yang Anda tentukan untuk pertama kali. Jika Anda mengubah nilai parameter hit dalam pencarian gulir berikutnya, perubahan tersebut tidak akan berpengaruh.
Saat menjalankan pencarian gulir untuk pertama kali, hanya ID gulir yang dikembalikan. Untuk mendapatkan data dokumen, gunakan ID ini untuk menjalankan pencarian gulir lagi.
Untuk menentukan apakah terjadi kesalahan, gunakan kode kesalahan dan pesan alih-alih informasi status. Untuk informasi lebih lanjut, lihat Kode Kesalahan.
Jika pesan kesalahan "Scroll_id is expired" dikembalikan, pencarian gulir telah kedaluwarsa. Ubah parameter scroll.
Demo SDK
1. Saat menjalankan pencarian gulir, parameter start yang ditentukan dalam klausa config tidak berpengaruh. Anda dapat menggunakan parameter hit dalam klausa config untuk menentukan jumlah dokumen dalam setiap set hasil.
2. Pencarian gulir tidak mendukung klausa aggregate dan distinct, atau ekspresi sort kasar dan halus. Pencarian gulir mendukung pengurutan berdasarkan satu bidang bertipe INT.
3. Pencarian gulir lintas aplikasi tidak didukung.
4. Jika nilai parameter scroll_id dalam permintaan tidak valid, terjadi kesalahan.
5. Hasil pengembalian pencarian gulir hanya mendukung format fullJSON dan JSON.
6. Saat menjalankan pencarian gulir untuk pertama kali, hanya ID gulir yang dikembalikan. Untuk mendapatkan data dokumen, gunakan ID ini untuk menjalankan pencarian gulir lagi.
Java:
Demo untuk mengimplementasikan pencarian gulir reguler
Demo untuk mengimplementasikan pencarian gulir iteratif
PHP:
Demo untuk mengimplementasikan kueri gulir
Operasi API terkait pencarian gulir: