2014-11-06 32 views
0

我有一臺服務器,它有一個Solr環境託管在它上面。我想運行我們的Solr數據庫包含的數據的每週更新。在活動的Solr環境中運行每週更新

我有幾個解決方案,但我想知道一個人是否是可能的,如果它是一個會更好:

我的第一個解決方案是有2臺服務器上既有Solr的環境,當一個更新你只需切換使用連接到Solr的URL並連接到另一個。

我的其他解決方案是我不知道該怎麼做的。有沒有方法可以切換Solr環境查看的數據源,而無需重新啓動或切除任何當前搜索。

如果有人有任何想法,將不勝感激。

+0

爲什麼不使用SolrCloud並讓它工作? – Yann 2014-11-06 10:05:56

回答

2

根據數據的大小,您可能只是在更新時保持Solr內核運行。首先發出刪除,然後索引數據並最終提交更改。在發佈提交之前,不會看到新的索引狀態,這允許您在等待索引完成時提供舊數據。

另一種選擇是使用核心管理員切換核心,就像您提到的那樣,類似於copying data into other cores(放棄mergeindex命令)。

如果您還在談論更新和升級實際的Solr版本或應用程序服務器,同時仍然提供內容,那麼讓第二臺服務器從主服務器複製索引是獲得更多冗餘的簡單方法。這樣,您可以繼續爲第二臺服務器提供查詢,同時維護第一臺服務器,然後以相反方式進行查詢。將您的客戶端指向HTTP負載平衡器,並將維護的服務器從服務請求列表中刪除,並將其保存在服務器中。這也將使你抵禦單一硬件故障等。

還有設置SolrCloud的選項,但這可能需要更多的重構。