SOLR索引性能:处理2.3k Docs / s

时间:2019-05-02 19:19:30

标签: solr lucene

我正在尝试提高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我已经尝试过:

  • 批量大小:
    1. 2000-不变
    2. 6000-不变
    3. 4000-不变

示例:

 <dataSource jndiName="xxxxxx batchSize="2000" type="JdbcDataSource"/>
  • 自动提交:
    1. 每1小时-没有变化
  • MergeFactor:
    1. 默认值20 vs 10-退出20分钟
  • 索引字段:
    1. 剪出11个索引字段-什么都没有

编辑:在下面的每个问题中添加一些信息。我每小时都会自动提交,这没有任何帮助。还每秒进行一次软提交。我复制了一个较小的Solr内核,该内核具有这些参数,他们说它们运行良好。

    <autoCommit> 
      <maxTime>3600000</maxTime> 
      <openSearcher>false</openSearcher> 
    </autoCommit>


    <autoSoftCommit> 
      <maxTime>1000</maxTime> 
    </autoSoftCommit>

除了为此扔硬件以外,我是否还有其他陷阱? 如果您需要更多信息,请告诉我,我会尽我所能尽力回答问题。

0 个答案:

没有答案