2017-09-01 59 views

回答

0

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

軟,當你想將盡快作出一些可用而不等待其被寫入到磁盤提交。當你想確保它被持久化到磁盤時,硬性提交。

從上面的鏈接:

軟承諾

軟提交即將知名度,硬提交即將耐久性。對於軟提交最瞭解的事情是,他們將使文檔可見,但需要一定的成本。特別是包含solrconfig.xml(filterCache,queryResultCache等)中配置內容的「頂級」緩存將失效! Autowarming將在您的頂級緩存中執行(例如filterCache,queryResultCache),並且將執行任何newSearcher查詢。此外,FieldValueCache無效,因此方面的查詢將不得不等待,直到刷新緩存。由於非常頻繁的軟提交,通常情況下,您的頂級緩存很少使用,並且在某些情況下可能會被淘汰。然而,用於函數查詢,排序等的「段級高速緩存」是「每段」,因此在軟提交時不會失效;他們可以繼續使用。

硬承諾

硬提交即將耐久性,柔軟提交即將知名度。這裏真的有兩種風格,openSearcher = true和openSearcher = false。首先我們將討論兩種情況下會發生什麼。如果openSearcher = true或openSearcher = false,則以下後果是最重要的:

  • tlog被截斷:啓動新的tlog。
  • 如果在較新的已關閉tlog中有超過100個文檔,則舊tlogs將被刪除。
  • 當前索引段關閉並刷新。
  • 背景片段合併可能啓動。
  • 上述情況發生在所有硬提交上。

剩下的openSearcher設置

  • openSearcher =真:Solr的/ Lucene的搜索者重新開放,所有緩存都無效。 Autowarming已完成等。這曾經是您可以看到新增文檔的唯一方法。
  • openSearcher = false:除了上述四點之外沒有任何進一步的發生。要搜索文檔,軟性提交是必要的。