При выполнении _scroll API появляется сообщение об ошибке "Trying to create too many scroll contexts.".
Информация об ошибке выглядит следующим образом:
1 | {"error":{"root_cause":[{"type":"exception","reason":"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."},{"type":"exception","reason":"Trying to create too many scroll contexts. Must be less than or equal to: [500]. ...... |
Возможные причины
Каждый раз, когда кластер вызывает _scroll API, создается контекст "прокрутки". Когда количество контекстов достигает заданного порога, _scroll запросы больше не могут быть созданы.
Решение
Выполните следующую команду, чтобы проверить значение open_contexts (количество контекстов прокрутки):
1 | GET /_nodes/stats/indices/search |
Если значение достигает верхнего ограничителя, используйте один из следующих методов для решения проблемы.
Способ 1
Удалите ненужные _scroll запросы, чтобы освободить место для хранения контекстов прокрутки.
1 2 | DELETE /_search/scroll { "scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAFAAAAAAAD4WYm9laVYtZndUQlNsdDcwakAMNjU1QQ=="} |
Способ 2
Измените значение search.max_open_scroll_context, чтобы увеличить место для хранения контекстов прокрутки.
1 2 3 4 5 6 | PUT /_cluster/settings { "persistent" : { "search.max_open_scroll_context": 2012345678 } } |
Либо с помощь curl
1 | curl -H 'Content-Type: application/json' -X PUT localhost:9200/_cluster/settings -d '{"persistent" : {"search.max_open_scroll_context": 2012345678}}' |