目前我有一张约100,000行的表格。我想在Solr索引中索引此表中的数据。
所以天真的方法是:
我能想到的这种方法的一些问题是:
然而,一些优点:
这种方法不可扩展,我看到,因为随着表的增长,内存需求和POST请求的大小也会增加。我需要花费n
个行,处理它们,然后选择下一个n
?
我想知道是否有人对如何最好地实施这个有任何建议?
(ps。我确实搜索过该网站,但我没有发现任何类似的问题。)
感谢。
答案 0 :(得分:2)
如果要在一次POST所有文档和为每个文档执行一次POST之间取得平衡,可以使用队列来收集文档并运行一个单独的线程,一旦收集到足够的文档就会发送文档。这样您就可以管理内存与请求时间问题。
答案 1 :(得分:1)
我使用了nikhil500的建议:
DIH支持许多变形金刚。您也可以编写自定义变换器。如果可能的话,我会建议使用DIH - 我认为它需要最少量的编码,并且比POST文档更快。 - nikhil500 2月6日17:42
答案 2 :(得分:0)
我曾经不得不从DB上传~3000行(每个5个字段)到Solr。我分别上传了每个文件并做了一次提交。整个操作只用了几秒钟,但是一些上传(3000个中的8个)都失败了。
完美无缺的是在提交之前分批上传50个。 50可能一直很低。在进行提交之前,建议限制可以上载的文档数量。这取决于文件的大小。
但是,这是一次性操作,您可以使用黑客脚本进行监督。 后续操作会让您一次索引100,000行吗?或者,您是否可以在每次操作中仅为几百个更新文档编制索引?