Java 什么';在Solr中索引~1TB丰富文本的最佳方法是什么?
我正在尝试索引大约120万个文档、pdf、xls、msg和其他文件(1TB)。我使用的是一个Java爬虫,它遍历每个文件,并使用一个执行更新/提取cURL命令的进程将其发布到Solr,并定期提交 目前,索引大约需要75个小时,这是一个令人尴尬的漫长过程。我在网上见过其他提高索引速度的方法,但鉴于我们正在索引richtext文档,而不仅仅是文本或CSV,我不确定哪种方法适用于我们的情况 这些文件高达25MB,可以有数千页的长度,所以我认为提卡提取所有的文本会减慢速度。我不知道如何解决这个问题,最终我们将不得不使用Tika以某种方式获取内容 我看到一些帖子说多线程可以用于索引,但是我在这方面没有太多的经验,所以在我尝试创建一种方法之前,我想我会看看是否有人对另一种可能增加索引时间的方法有任何想法(或者我错过了一些明显的方法)Java 什么';在Solr中索引~1TB丰富文本的最佳方法是什么?,java,search,solr,apache-tika,Java,Search,Solr,Apache Tika,我正在尝试索引大约120万个文档、pdf、xls、msg和其他文件(1TB)。我使用的是一个Java爬虫,它遍历每个文件,并使用一个执行更新/提取cURL命令的进程将其发布到Solr,并定期提交 目前,索引大约需要75个小时,这是一个令人尴尬的漫长过程。我在网上见过其他提高索引速度的方法,但鉴于我们正在索引richtext文档,而不仅仅是文本或CSV,我不确定哪种方法适用于我们的情况 这些文件高达25MB,可以有数千页的长度,所以我认为提卡提取所有的文本会减慢速度。我不知道如何解决这个问题,最终
谢谢
< P>你可能要考虑使用Hadoop构建索引。此选项可从Solr4.9(见问题)获得,并允许使用多台机器创建索引 多线程确实是一个好方法。您可以使用Java执行器,无需花费太多精力,它将是一个多线程索引过程。另一件事是,由于您只是将文档索引到Solr,因此请将您的autoSoftCommit
设置为一个较高的值,例如15分钟或30分钟。自动提交的设置也类似。稍后您可以更新这些配置并重新加载内核。好的,我会研究一下。是的,我刚刚检查了solr配置,自动提交每15秒就启动一次,所以我也增加了。谢谢你的回复!谢谢你的建议,我去看看。一旦部署,我们应该有多台机器可以一起工作,这样才能很好地工作。