我想知道什么时候应该进行硬提交,何时应该在SOLR中进行软提交。
由于
答案 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 :除了上述四点之外,没有任何其他事情发生。要搜索文档,必须进行软提交。