[英]Disabling replication in master is deleting records from slave automatically in SOLR 7.7
我們有 1 個主設備和 2 個從設備配置。 所有服務器都與數百萬個文檔同步。 當我禁用主服務器的復制時,從服務器中的文檔會自動刪除。 在主服務器文檔仍然存在,我也可以搜索。 如果有人在 SOLR 中遇到此類問題,請幫助我。 solr 4.7 中的相同配置工作正常。
主配置:
<lst name="master">
<str name="replicateAfter">commit</str>
<str name="replicateAfter">startup</str>
<str name="confFiles">managed-schema,stopwords.txt</str>
</lst>
從站配置:
<lst name="slave">
<str name="masterUrl">https://example.com/solr/${solr.core.name}/replication</str>
<str name="pollInterval">00:00:60</str>
</lst>
更改下面的 java class 並重建 solr。
solr-7.7.2\solr\core\src\java\org\apache\solr\handler\IndexFetcher.java
if (latestVersion == 0L) {
if (forceReplication && commit.getGeneration() != 0) {
// since we won't get the files for an empty index,
// we just clear ours and commit
log.info("New index in Master. Deleting mine...");
如果在 solr7 之后條件“forceReplication”條件不可用,則在第二個中。 在 solr 6 'forceReplication' 中。 添加此條件並重建 solr。
如果您需要更多幫助,您可以發表評論。
也有一些替代解決方案可用。 根據您的要求,您可以選擇。 如果您僅因為在每次提交到 master 后不需要進行復制而禁用復制,則只能在優化調用而不是提交調用之后啟用復制。 您可以從 UI 禁用啟用/禁用復制按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.