1

我正在尝试使用 Elastica API 将 1000 万个文档索引到我的 Elasticsearch 索引中。我在具有 16G RAM 和 8 个内核的 Ubuntu 服务器上运行我的脚本。

到目前为止,我不能索引超过 250000 个文档。我的脚本正在中断并返回一个未知错误。

有人可以向我描述确保对这些数据量进行索引的步骤吗?

我在这里找到了一个与我类似的问题,但答案对我来说似乎不是很清楚。

编辑 :

我已经运行了Nate从这里建议的索引脚本,我得到了以下输出:

close index
{
 "acknowledged" : true
}
refresh rate
{
 "acknowledged" : true
}
merge policy
{
 "acknowledged" : true
}
replicas
{
 "acknowledged" : true
}
flush
{
 "acknowledged" : true
}
buffer
{
 "acknowledged" : true
}
{
 "acknowledged" : true
}

PS:我稍微修改了脚本以提高输出的可见性

编辑 2: 我已经从 Elastica 切换到使用elasticsearch-jdbc-river,现在它索引了大约 500 万个,但仍然不是整个数据库。

是河流的 json 文件,将它放在 Elasticsearch 上的脚本文件在这里。

4

1 回答 1

1

这个问题我早就解决了,但是忘记写答案了。

我已经考虑过应用 elasticsearch-jdbc-river 的第二种解决方案,从现在开始,当我写答案时,它已被弃用。

尽管如此,当时河流的问题在于考虑默认的 query_timeout 选项,考虑到我使用的大量 SQL 查询,默认情况下似乎还不够。该选项在 query_timeout 过去后终止了该进程。

我增加了 query_timeout 值,它解决了我的问题。

于 2015-09-03T18:26:55.073 回答