2013-05-27 72 views
0

我有一個問題,Solr的一個實例正在查詢我的MySQL數據庫,在對該數據庫進行更新後立即刷新其索引,但Solr查詢沒有看到之前做出的更改。強制MySQL回寫

我想象的問題必須是像Solr使用不同的數據庫連接的東西,並且不知何故變更沒有被「提交」(我不使用交易,只需要撥打mysql_query),然後另一個連接可以看見。如果我在那裏撥打足夠長的電話號碼sleep(),它的工作時間大多數,但顯然這是不可接受的。

在繼續之前,我可以調用PHP或MySQL函數來強制寫入/更新/刷新數據庫嗎?

+0

你使用主/從配置嗎? – SteAp

+0

我不知道,我沒有設置這個。據推測,索引是由一個主MySQL數據庫構建的。 – devios1

回答

1

您可以使Solr使用SET TRANSACTION ISOLATION LEVEL = READ-COMMITTED以獲得更新數據的更及時的視圖。

您應該可以使用JDBC URL的transactionIsolation屬性來執行此操作。

+0

我試着在連接字符串url中添加'&transactionIsolation = TRANSACTION_READ_COMMITTED',但是我不知道它是否有任何作用。你能更清楚些嗎,我是新手。 – devios1