2013-04-28 57 views
1

Solr last_index_time是dih啓動時的Solr服務器機器時間。如果系統與多個服務器分發,而這些服務器沒有確切的時間戳,那麼如何處理時間差?Solr dih上次索引時間偏移量

對我的一個解決方案是設定一個容差,例如, 5分鐘,做dih delta導入時,減去上面的last_index_time 5分鐘。儘管一些重複的項目將被處理,Solr將覆蓋現有的項目。

你能給我一些建議嗎?謝謝。

+0

您是否在每臺服務器上觸發導入?還是有主從設置? – 2013-04-28 15:24:51

+0

感謝您的回覆。我有一個數據庫連接了多個應用程序服務器,因此數據庫中記錄的更新時間來自不同的應用程序服務器。根據dataimport.properties中的last_index_time和數據庫記錄更新時間,Solr正在增量導入此數據庫,這可能有點不同。如何處理這種情況?我認爲這是一個普遍的例子,除非我誤認爲Solr機制。謝謝。 – user2102627 2013-04-28 22:35:52

回答

0

我看到這個問題最常見的方式是在Solr格局中只有一個Solr實例上運行DIH,然後使用Solr的複製(也稱爲主從 - 如上所述)功能來分發更新的信息圍繞其他涉及的指標。

+0

我只有一個Solr實例,因爲我現在只有一個數據庫。重點是唯一一個數據庫存儲來自不同應用程序服務器(不完全相同的時間戳)的lastUpdateTime記錄,並且在dataimport.properties中使用lastUpdateTime。 – user2102627 2013-04-29 01:48:07

+0

好的,謝謝,我明白現在的困境。除了嘗試以某種方式規範化數據庫中的應用程序更新時間之外,一種簡單的方法可能是將每個邏輯Web應用程序視爲碎片(在Solr 4.x中,這更易於使用,請參閱http://docs.lucidworks.com /顯示/ solr的/碎片+和+索引+數據+在+ SolrCloud);或者,您可以將它們作爲單獨的核心(再次基於webapp作爲判別式),然後將它們合併在一起(請參閱http://docs.lucidworks.com/display/solr/Merging+Indexes)。 – icey502 2013-04-30 01:53:58