シナリオ
通常の検索では、できるだけ短時間で最も一致する結果を取得することを目的としています。そのため、返される結果に含めることができるドキュメントの数には制限があります。たとえば、通常の検索では最大 5,000 件のドキュメントを返すことができます。ただし、シナリオによっては、分析のためにさらに多くの結果が必要になる場合があります。この場合、スクロール検索を使用して、より多くの検索結果を取得できます。
パラメーター
リクエストパラメーター
パラメーター | タイプ | 必須 | 有効値 | デフォルト値 | 説明 |
scroll | STRING | はい | 週、日、時、分、または秒単位の値 | スクロール検索の初回実行時に返されるスクロール ID の有効期間(週(w)、日(d)、時(h)、分(m)、または秒(s)単位)。例:1m。 | |
search_type | STRING | はい | scan | スクロール検索のタイプ。このパラメーターは、スクロール検索の初回実行時にのみ指定する必要があります。スクロール検索の後続の実行では、scroll_id パラメーターを指定できます。 | |
scroll_id | STRING | はい | スクロール検索で返されるスクロール ID。スクロール検索を初めて実行すると、スクロール ID のみが返されます。検索結果を取得するには、この ID を使用してスクロール検索を再度実行します。スクロール検索の後続の実行では、この ID はリクエストパラメーターとして必須であり、レスポンスパラメーターとしても返されます。 | ||
fetch_fields | STRING | 検索結果に返されるフィールド。 |
レスポンスパラメーター
パラメーター | タイプ | 説明 |
status | STRING | リクエストの実行結果。有効値:OK および FAIL。OK の値は、リクエストが成功したことを示します。FAIL の値は、リクエストが失敗したことを示します。この場合、エラーコードに基づいてエラーをトラブルシューティングします。 |
request_id | STRING | リクエストの ID。トラブルシューティングに使用されます。 |
result | STRING | 戻り値。searchtime、total、num、viewtotal、items、facet、および scroll_id パラメーターが含まれます。 |
errors | STRING | エラー情報。error_message パラメーターはエラーメッセージを示します。エラーコードの詳細については、エラーコードを参照してください。 |
スクロール検索の戻り値は、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",
"litteral_arr": "Search",
"name": "Search",
"phone": "1381111****",
"index_name": "app_schema_demo"
},
"property": {},
"attribute": {},
"variableValue": {},
"sortExprValues": [
"1"
]
}
],
"facet": []
},
"errors": [],
"tracer": ""
}
使用上の注意
スクロール検索では、INT タイプの単一フィールドに基づく並べ替えがサポートされています。この機能を実装するには、OpenSearch API および OpenSearch SDK のバージョンが V3 であることを確認してください。
スクロールは、検索のすべての一致する結果を取得するために使用され、aggregate 句と distinct 句、ラフソート式とファインソート式、またはクエリ分析はサポートしていません。
スクロール検索を実行する場合、config 句で指定した start パラメーターは有効になりません。この場合、デフォルト値の 0 が使用されます。これは、ページをスキップできないことを示します。スクロールクエリの場合、各結果セットのドキュメント数は 500 を超えることはできません。
初めてスクロール検索を実行するときは、hit パラメーターを指定する必要があります。各結果セットで返されるドキュメント数は、最初に指定した hit パラメーターに基づいて決定されます。後続のスクロール検索で hit パラメーターの値を変更しても、変更は有効になりません。
スクロール検索を初めて実行すると、スクロール ID のみが返されます。ドキュメントデータを取得するには、この ID を使用してスクロール検索を再度実行します。
エラーが発生したかどうかを判断するには、ステータス情報ではなく、エラーコードとメッセージを使用します。詳細については、エラーコードを参照してください。
「Scroll_id is expired」というエラーメッセージが返された場合、スクロール検索の有効期限が切れています。scroll パラメーターを変更してください。
SDK デモ
1. スクロール検索を実行する場合、config 句で指定した start パラメーターは有効になりません。config 句の hit パラメーターを使用して、各結果セットのドキュメント数を指定できます。
2. スクロール検索では、aggregate 句と distinct 句、またはラフソート式とファインソート式はサポートされていません。スクロール検索では、INT タイプの単一フィールドに基づく並べ替えがサポートされています。
3. アプリケーションをまたがるスクロール検索はサポートされていません。
4. リクエストの scroll_id パラメーターの値が無効な場合、エラーが発生します。
5. スクロール検索の戻り値は、fullJSON および JSON 形式のみをサポートしています。
6. スクロール検索を初めて実行すると、スクロール ID のみが返されます。ドキュメントデータを取得するには、この ID を使用してスクロール検索を再度実行します。
Java:
PHP:
スクロール検索に関連する API 操作: