31

大規模なデータセットに対する不運なクエリでElasticsearchでquery_stringを使用すると、ほとんどクラスターがダウンする可能性があり、クエリが完了するまでにかなりの時間がかかる可能性があります。ユーザーが任意のクエリ文字列を指定できるようにすると、これは深刻な問題になる可能性があります。

それで、クエリにかかる時間やリソースを制限する方法はありますか? Elasticsearch に、たとえば 10 秒後にクエリを自動的に中止するように指示できれば、それは非常に役立ちます。

4

1 に答える 1

19

リクエスト本文またはuri requestで検索「タイムアウト」を渡すことができます。すべての結果を収集する前に検索要求がタイムアウトした場合、部分的な結果が返されます。

10 秒の uri リクエストの例を次に示します (単位はミリ秒です)。

http://localhost:9200/_search?timeout=10000

タイムアウトを十分に低く設定すると、返される json に "timed_out":true が表示されます。

于 2013-08-23T14:49:27.283 に答える