Utilisez la méthode scroll pour exporter des documents par lots au-delà de la limite de 5 000 documents imposée par la méthode de recherche standard.
Scénarios
La recherche traditionnelle renvoie rapidement les résultats les plus pertinents, mais elle limite le nombre de documents récupérables. Par exemple, la méthode search permet de récupérer au maximum 5 000 documents. Pour récupérer un plus grand nombre de documents à des fins d'analyse, utilisez l'API scroll.
Paramètres
Paramètres de recherche :
|
Paramètre |
Type |
Obligatoire |
Valeurs valides |
Valeur par défaut |
Description |
|
scroll |
STRING |
Oui |
Semaine, jour, heure, minute, seconde |
Durée de validité de la prochaine requête scroll. Ce paramètre est obligatoire pour chaque requête. Par exemple, |
|
|
search_type |
STRING |
Oui |
scan |
Obligatoire pour la première requête. Pour les requêtes suivantes, spécifiez le |
|
|
scroll_id |
string |
Oui |
Le premier appel scroll renvoie un |
||
|
fetch_fields |
string |
Spécifie les champs applicatifs à récupérer. |
Paramètres de réponse :
|
Paramètre |
Type |
Description |
|
status |
string |
Résultat de l'exécution. |
|
request_id |
string |
ID d'enregistrement de la requête, utilisé principalement pour le dépannage. |
|
result |
string |
Résultat de la requête, comprenant le temps de requête ( |
|
errors |
string |
Détails de l'erreur. |
La réponse scroll prend actuellement en charge uniquement les formats fulljson et json.
Résultats
Réponse à la première requête :
{
"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": ""
}
Réponse à une requête suivante :
{
"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": ""
}
Notes
La clause
sortprend uniquement en charge les champs uniques de type INT. Cela s'applique uniquement à l'API v3 et au kit de développement logiciel (SDK).La fonctionnalité scroll permet uniquement d'exporter toutes les données. Elle ne prend pas en charge les clauses Aggregate ou Distinct, les expressions de tri grossier ou fin, ni l'analyse de requête.
Le paramètre
startde la clauseconfign'a aucun effet dans une requête scroll. La valeur par défaut est 0, ce qui signifie que la pagination n'est pas prise en charge. La valeur dehitsdoit se situer dans la plage [0, 500].Une requête scroll utilise la valeur
hitsde la première requête, c'est-à-dire celle qui renvoie lescroll_id. Les modifications de la valeurhitsdans les requêtes suivantes ne sont pas prises en compte.La première requête renvoie uniquement un
scroll_idsans données de document. La deuxième requête, qui inclut lescroll_id, renvoie les données.Pour identifier les erreurs de recherche, vérifiez les champs
codeetmessagepour détecter les exceptions. Ne vous fiez pas au champstatus. Pour plus d'informations, consultez les Codes d'erreur.Si l'erreur
Scroll_id is expiredest renvoyée, cela signifie que la requête scroll a expiré. Ajustez le paramètrescrollpour prolonger la durée de validité.
Exemples SDK
1. Le paramètre start de la clause config n'a aucun effet. Utilisez plutôt la valeur hits pour définir le nombre de documents à récupérer pour chaque requête.
2. Les fonctionnalités telles que aggregate, distinct et les expressions de tri grossier et fin ne sont pas prises en charge. La clause sort prend uniquement en charge le tri par un champ unique de type INT.
3. Les requêtes scroll sur plusieurs applications ne sont pas prises en charge.
4. Si vous transmettez un scroll_id non valide, la requête renvoie une erreur.
5. Les formats pris en charge pour les résultats de récupération sont fulljson et json.
6. La première requête renvoie uniquement un scroll_id sans données de document. Pour récupérer les données, effectuez une deuxième requête en incluant le scroll_id de la première réponse.
Exemples Java :
Démonstration de requête scroll simple
Démonstration de requête scroll itérative
Exemples PHP :
Démonstration de recherche scroll
API d'opération d'application :