弹性搜索:轮胎:数据导入太慢

时间:2013-10-10 01:42:52

标签: ruby-on-rails elasticsearch tire

我想索引接近900,000份文件,但这需要很长时间。我已经定义了一个映射,其中包含以下行的索引:

indexes :residencies_with_year,     type: 'string',     :as => 'residencies_obj.map{|r| ExpertProfile.residency_with_year_to_s(r)}'

因此我相信有很多数据库查询,因为我正在索引模型。我正在使用默认配置:节点数= 1,分片数= 5,副本数= 1。 每批1000份文件大约需要15分钟。

如何加快速度?

这是我正在使用的rake命令

rake environment tire:import CLASS='Expert' FORCE=true

1 个答案:

答案 0 :(得分:0)

作为替代方案,您可以尝试使用时间范围进行并行导入。 在这种情况下不要使用强制选项

rake environment tire:import CLASS='Expert.scoped(:conditions => [created_at<? and created_at>?', Time.now.utc, Time1])'
rake environment tire:import CLASS='Expert.scoped(:conditions => [created_at<? and created_at>?', Time1, Time2])'
rake environment tire:import CLASS='Expert.scoped(:conditions => [created_at<? and created_at>?', Time2, Time3])'

这可能会加快导入过程的总时间