我正在尝试提高Solr 6.0索引的性能。
最初,我们使用连接7个表的select语句对4500万行进行索引,并花费了7多个小时来建立索引。这导致在整个索引建立期间打开jdbc连接时,我们都得到了快照太旧的错误。导致我们的完整索引失败。
我们能够归档大约1000万行,并从原始的7个联接选择中构建了一个外部表。这样简化了查询Solr所使用的查询,因此可以从1个表中选择*。
现在正在使用ONE_BIG_ 外部 -TABLE中的Select *为3500万行建立索引,这需要花费大约4-5个小时@ 2.3k docs / s + -250。由于我们使用的是外部表,因此不应由于UNDO堆栈而使快照太旧。
我们有77列正在建立索引。
因此,我们找到了解决第一个问题的解决方案,但现在我希望在执行干净填充时提高索引速度。
Referencing SolrPerformanceFactors我已经尝试过:
示例:
<dataSource jndiName="xxxxxx batchSize="2000" type="JdbcDataSource"/>
编辑:在下面的每个问题中添加一些信息。我每小时都会自动提交,这没有任何帮助。还每秒进行一次软提交。我复制了一个较小的Solr内核,该内核具有这些参数,他们说它们运行良好。
<autoCommit>
<maxTime>3600000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>1000</maxTime>
</autoSoftCommit>
除了为此扔硬件以外,我是否还有其他陷阱? 如果您需要更多信息,请告诉我,我会尽我所能尽力回答问题。