我在MongoDB中有一个要索引到Elasticsearch的集合。我在C#流程中执行此操作。该集合有1亿个文档,并且对于每个文档,我都必须查询其他文档,以便将规范化为Elasticsearch索引。
这都需要时间。从MongoDB读取是比较慢的部分(索引相对较快)。我正在尽可能高效地从MongoDB批处理数据,但是此过程需要2天以上的时间。
这仅在Elasticsearch中的映射更改时才发生,但是在上个月已经发生了两次。
有什么方法可以提高性能吗?
最佳答案
更改映射时,也许您不需要从头启动导入(我的意思是从MongoDB导入)。阅读此:Elasticsearch Reindex API
当您需要更改映射时,必须:
此后,将在新索引内使用新的映射为旧文档建立索引。与通过HTTP API从MongoDB导入相比,elasticsearch中的内置reindex可以更快地工作。
如果要使用reindex,请不要忘记使用
wait_for_completion
参数(此参数在文档中进行了描述)。这将在后台运行重新索引。这种方法会解决您的问题吗?
关于c# - 快速将整个MongoDB集合索引到Elastcticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45884287/