スクロールメソッドを使用して、標準の検索メソッドの 5,000 ドキュメントの制限を超えるドキュメントをバッチでエクスポートします。
シナリオ
従来の検索では、関連性の高い結果をすばやく返しますが、取得できるドキュメント数に制限があります。たとえば、search メソッドで取得できるドキュメントは最大 5,000 件です。分析のためにより多くのドキュメントを取得する場合は、スクロール API を使用します。
パラメーター
検索パラメーター:
|
パラメーター |
タイプ |
必須 |
有効値 |
デフォルト値 |
説明 |
|
scroll |
String |
はい |
Week、day、hour、minute、second |
次回のスクロールリクエストの有効期間です。各リクエストで設定する必要があります。たとえば、 |
|
|
search_type |
String |
はい |
scan |
最初のクエリで必須です。後続のクエリでは、次のクエリを実行するために |
|
|
scroll_id |
String |
はい |
最初のスクロール呼び出しは |
||
|
fetch_fields |
String |
取得するアプリケーションフィールドを指定します。 |
レスポンスパラメーター:
|
パラメーター |
タイプ |
説明 |
|
status |
String |
実行結果です。 |
|
request_id |
String |
クエリレコード ID です。主にトラブルシューティングで使用します。 |
|
result |
String |
クエリ結果です。クエリ時間 ( |
|
errors |
String |
エラーの詳細です。 |
スクロール機能のレスポンスでは、現在 fulljson と json 形式のみがサポートされています。
結果
最初のリクエストのレスポンス:
{
"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": ""
}
後続リクエストのレスポンス:
{
"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": ""
}
注意事項
-
sort句はINTタイプの単一フィールドのみをサポートします。これはv3 APIとソフトウェア開発キット (SDK) にのみ適用されます。 -
スクロール機能は、すべてのデータのエクスポートにのみ対応しており、集計句または DISTINCT 句、粗いソート式または精密なソート式、クエリ分析はサポートしていません。
-
スクロールクエリでは、
config句のstartパラメーターは無効です。デフォルト値は 0 で、ページネーションはサポートされません。hitsの値は [0, 500] の範囲で指定する必要があります。 -
スクロールクエリでは、
scroll_idを返す 最初 のクエリのhits値が使用されます。後続のクエリでhits値を変更しても反映されません。 -
最初のクエリは
scroll_idのみを返し、ドキュメントデータは返しません。後続のクエリでは、データとともに新しいscroll_idが返されます。 -
検索エラーを特定するには、例外の
codeフィールドとmessageフィールドを確認してください。statusフィールドに依存しないでください。詳細については、「エラーコード」をご参照ください。 -
Scroll_id is expiredエラーが返された場合、スクロールリクエストの有効期限が切れています。有効期間を延長するには、scrollパラメーターを調整してください。
SDK サンプルデモ
1. config 句の start パラメーターは無効です。代わりに、各リクエストで取得するドキュメント数を hits の値で設定します。
2. aggregate、distinct、粗いソート式、精密なソート式などの機能はサポートされません。sort 句は INT タイプの単一フィールドによるソートのみをサポートします。
3. 複数アプリケーションにまたがるスクロールクエリはサポートされません。
4. 無効な scroll_id を渡すと、クエリはエラーを返します。
5. 取得結果としてサポートされている形式は fulljson と json です。
6. 最初のクエリは scroll_id のみを返し、ドキュメントデータは返しません。データを取得するには、後続のクエリで scroll_id を使用します。そのレスポンスには、データとともに新しい scroll_id が含まれます。
Java の例:
PHP の例:
アプリケーション操作 API: