UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Elasticsearch】Trying to create too many scroll contexts.のエラーがでてスクロール検索できない

Elasticsearchでスクロール検索をしようと思ったが、以下のエラーがでてできなかった

Trying to create too many scroll contexts. Must be less than or equal to: [500]. This limit can be set by changing the [search.max_open_scroll_context] setting

いままではできていて、いままで通りに実行しただけなのに、なぜかできなくなったので調査した

そもそもどういうエラーかというと、スクロール検索する際に作られるスクロールコンテキスト(保有期間やスクロールIDを保持するもの)の上限数が500を超えたというもの

つまり、スクロール検索が同時に500回行われている、もしくは終わったにも関わらず閉じられていない可能性があるというものだった

500以上にしたい場合はclusterセッティングを変更すればよいことがわかった

curl -x "" -X PUT localhost:9200/_cluster/settings -H 'Content-Type: application/json' -d'{
    "persistent" : {
        "search.max_open_scroll_context": 1024
    },
    "transient": {
        "search.max_open_scroll_context": 1024
    }
}'

しかし、そもそも同時に500検索なんてした覚えがないので、しているところを探したところ、バッチが失敗していたことに気づきそちらを直すことで対処した