在同样的你刚才问,但删除的问题,这是在互联网上有详尽的解释:
当您希望某些内容尽快可用而无需等待将其写入磁盘时,软提交。当你想要确保它被持久化到磁盘时硬提交。
从上面的链接:
软提交
软提交是关于可见性,硬提交是关于持久性。 关于软提交最需要理解的是它们将使文档可见,但需要付出一些代价。特别是“顶级”缓存,包括您在 solrconfig.xml 中配置的内容(filterCache、queryResultCache 等)将失效!Autowarming 将在您的顶级缓存(例如 filterCache、queryResultCache)上执行,并且将执行任何 newSearcher 查询。此外,FieldValueCache 已失效,因此构面查询必须等到缓存刷新。对于非常频繁的软提交,通常情况下您的顶级缓存很少使用,并且在某些情况下可能会被消除。但是,用于函数查询、排序等的“段级缓存”是“按段”的,因此不会在软提交时失效;它们可以继续使用。
硬提交
硬提交关乎持久性,软提交关乎可见性。这里真的有两种风格,openSearcher=true 和 openSearcher=false。首先,我们将讨论在这两种情况下会发生什么。如果 openSearcher=true 或 openSearcher=false,以下后果是最重要的:
- tlog 被截断:开始一个新的 tlog。
- 如果新的、关闭的 tlog 中有超过 100 个文档,则旧的 tlog 将被删除。
- 当前索引段被关闭并刷新。
- 可以发起后台段合并。
- 以上发生在所有硬提交上。
这留下了 openSearcher 设置
- openSearcher=true:重新打开 Solr/Lucene 搜索器,并使所有缓存失效。自动预热完成等。这曾经是您查看新添加文档的唯一方式。
- openSearcher=false:除了上述四点之外,没有进一步发生。要搜索文档,需要进行软提交。
| 归档时间: |
|
| 查看次数: |
5289 次 |
| 最近记录: |