Comment limiter la durée de requête dans elasticsearch?
Si vous utilisez query_string dans elasticsearch avec un malchanceux requête sur un vaste ensemble de données, vous pouvez presque vous apporter le cluster, et il peut prendre un temps assez long jusqu'à ce que la requête est terminée. Cela peut être un grave problème si vous permettre aux utilisateurs de spécifier arbitraire des chaînes de requête.
Donc, est-il un moyen de limiter le temps et/ou les ressources de la requête prend? Si vous pouviez dire elasticsearch pour abandonner l'interrogation automatiquement après 10 secondes, que ça vous intéresserait beaucoup.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez passer d'une recherche de "délai" dans le du corps de la requête ou dans le uri de la requête. Si la demande de recherche du temps d'attente avant la collecte de tous les résultats, les résultats partiels seront retournés.
Voici une uri de la requête en exemple pour 10 secondes (les unités sont en millisecondes):
Si vous définissez le délai d'attente assez faible, le retour json affichera "timed_out":true.