【发布时间】:2020-12-27 14:39:56
【问题描述】:
我正在尝试在 ES 中索引多个文件。由于文件很多,每个文件都有自己的索引,因此顺序索引在生产使用中似乎很慢。我想要的是并行索引多个文件。假设我有 100 个文件,想一次索引 10 个文件并分 10 批完成索引。我预计 10 个文件索引和单个文件索引所花费的时间是相同的,因为它们是并行执行的,资源也足够了。但是,在 ES 方面,索引是按顺序进行的,索引 10 个文件所需的时间几乎是单个文件所需时间的 10 倍。
看起来 ES 索引是按顺序运行的,尽管从这个 question 发送了并行请求以进行索引。是否可以并行索引数据以减少索引时间,或者我在这里遗漏了什么?感谢您的帮助
注意:我在单节点设置中对此进行测试。这可能是个问题吗?
【问题讨论】:
-
您要索引多少文件才能看到性能损失?
-
串行索引 10 个文件和并行索引 10 个文件所花费的时间几乎相同。我期望在并行工作时减少时间
-
10 个文件不算什么,如果您想查看结果,您应该尝试索引 1 000 000 个文件或至少 10 万个文件。我在生产中使用 elk,我没有看到 5-10 百万个文件的索引速度很慢。但是用elk在一个节点上做任何事情都是误解。他们甚至说,要使其发挥最佳效果,您至少需要 3 个节点。那么你能告诉我你的索引需要很长时间是什么意思吗?因为也许你只是做错了
标签: elasticsearch search indexing parallel-processing lucene