Pencarian reguler bertujuan untuk mengambil hasil yang paling relevan dalam waktu sesingkat mungkin, sehingga jumlah dokumen dalam hasil dibatasi. Sebagai contoh, hasil pencarian reguler tidak dapat melebihi 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 hasil tambahan.
Parameter
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 gulir yang akan dikembalikan untuk eksekusi berikutnya dari 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 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 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",
"literal_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, versi API OpenSearch dan SDK OpenSearch harus V3.
Guliran digunakan untuk mendapatkan semua hasil yang cocok dari pencarian dan tidak mendukung klausa aggregate dan distinct, klausa rank, serta analisis kueri.
Saat menjalankan pencarian gulir, parameter start yang ditentukan dalam klausa config tidak berpengaruh. Nilai default 0 akan digunakan, yang berarti 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 berpengaruh.
Saat menjalankan kueri gulir pertama, ID gulir dikembalikan. Untuk mendapatkan data dokumen, gunakan ID gulir ini untuk menjalankan kueri 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 dari pencarian gulir yang dikembalikan adalah masa berlaku permintaan gulir habis, ubah parameter scroll.
Contoh kode SDK
Catatan:
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, distinct, dan rank. 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.
Contoh Kode Terkait Pencarian Gulir dalam OpenSearch SDK for Java:
Contoh Kode untuk Mengimplementasikan Pencarian Gulir Reguler
Contoh Kode untuk Mengimplementasikan Pencarian Gulir Iteratif
Contoh Kode untuk Mengimplementasikan Pencarian Gulir dalam OpenSearch SDK for PHP:
Contoh Kode untuk Mengimplementasikan Kueri Gulir
Operasi API Terkait Pencarian Gulir