我遇到一个问题,即 Solr 实例正在查询我的 MySQL 数据库以在对该数据库进行更新后立即刷新其索引,但 Solr 查询没有看到之前所做的更改。
我想问题一定是 Solr 使用不同的数据库连接,并且不知何故,更改没有被“提交”(我没有使用事务,只是调用 mysql_query
) 在其他连接可以看到它之前。如果我在那里抛出一个足够长的 sleep()
调用,它在大多数情况下都可以工作,但显然这是 Not Acceptable 。
在继续之前,我可以调用 PHP 或 MySQL 函数来强制写入/更新/刷新数据库吗?
最佳答案
您可以让 Solr 使用 SET TRANSACTION ISOLATION LEVEL = READ-COMMITTED更及时地查看更新的数据。
您应该能够使用 JDBC URL 的 transactionIsolation 属性来执行此操作。
关于php - 强制MySQL写回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16780705/