什么时候应该在SOLR中应用硬提交和软提交?

时间:2017-09-01 11:00:20

标签: solr

我想知道什么时候应该进行硬提交,何时应该在SOLR中进行软提交。

由于

1 个答案:

答案 0 :(得分:2)

same vein as the question you just asked but deleted, this is explained thoroughly on the internet

软件提交,如果您希望尽快使某些内容可用而不等待它写入​​磁盘。你想要硬提交,确保它被保存到磁盘。

从上面的链接:

软提交

  

软提交是关于可见性的,硬提交是关于持久性的。关于软提交最容易理解的是它们会使文档可见,但需要付出一些代价。特别是“顶级”缓存,包括您在solrconfig.xml中配置的内容(filterCache,queryResultCache等)将失效!将在您的顶级缓存(例如filterCache,queryResultCache)上执行自动装配,并且将执行任何newSearcher查询。此外,FieldValueCache无效,因此facet查询必须等到刷新缓存。对于非常频繁的软提交,通常情况下,您的顶级缓存很少使用,并且在某些情况下可能会被淘汰。但是,用于函数查询,排序等的“段级高速缓存”是“每段”,因此在软提交时不会失效;它们可以继续使用。

硬提交

  

硬提交是关于持久性的,软提交是关于可见性。这里有两种风格,openSearcher = true和openSearcher = false。首先,我们将讨论两种情况下会发生什么。如果openSearcher = true或openSearcher = false,则以下结果最为重要:

     
      
  • tlog被截断:启动新的tlog。
  •   
  • 如果较新的已关闭的tlog中有超过100个文档,则旧的tlog将被删除。
  •   
  • 当前索引段已关闭并已刷新。
  •   
  • 可以启动后台细分合并。
  •   
  • 上述情况发生在所有硬提交上。
  •   
     

离开openSearcher设置

     
      
  • openSearcher = true :Solr / Lucene搜索器重新打开,所有缓存都无效。完成自动装配等。以前这是您可以看到新添加文档的唯一方法。
  •   
  • openSearcher = false :除了上述四点之外,没有任何其他事情发生。要搜索文档,必须进行软提交。
  •