我尝试使用Elastica API将1000万个文档编入我的Elasticsearch索引。 我在具有16G RAM和8个内核的Ubuntu服务器上运行我的脚本。
到目前为止,我无法为超过250000个文档编制索引。我的脚本正在破坏并返回一个未知错误。
有人可以向我描述确保索引此数据量的步骤吗?
我发现了一个类似于我here的问题,但答案对我来说似乎不太清楚。
编辑:
我运行了Nate here建议的索引脚本,我得到了以下输出:
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,现在它的索引大约有5百万,但仍然不是整个数据库。
答案 0 :(得分:1)
我很久以前就已经解决了这个问题,但我忘了写一个答案。
我已经考虑过应用elasticsearch-jdbc-river的第二个解决方案,从现在起我写这个答案的时候已经弃用了。
然而,当时河流的问题在于考虑到默认的query_timeout选项,考虑到我正在使用的升沉SQL查询,默认情况下这似乎是不够的。在query_timeout过去之后,该选项终止了该进程。
我增加了query_timeout值,它解决了我的问题。