这个问题是Java栈的一个同事提出来的,按道理游标本身多线程处理完全可以的啊,毕竟感觉像是Redis scan。

后来深入了解了下,发现对于多线程来说,其实官方有更优雅的姿势对游标scroll进行处理的,随手总结如下:

Sliced scroll

示例代码:



GET /my-index-000001/_search?scroll=1m
{
"slice": {
"id": 0,
"max": 2
},
"query": {
"match": {
"message": "foo"
}
}
}
GET /my-index-000001/_search?scroll=1m
{
"slice": {
"id": 1,
"max": 2
},
"query": {
"match": {
"message": "foo"
}
}
}


参考资料

Simultaneously executing multiple queries on Scroll API to fetch Large Data

Sliced scroll


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《Elasticsearch 游标如何多线程处理》相关的博文:


留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌