1

我是 Solr 中的主/从配置的新手,我试图了解 solr 的主从配置中的 replicateAfter 属性的含义。我最初认为在提交/优化之后,主服务器会将更新发送给所有从服务器。但似乎并非如此。

这是复制的请求处理程序配置。

<requestHandler name="/replication" class="solr.ReplicationHandler" >
  <lst name="master">
    <str name="enable">${enable.master:false}</str>
    <str name="replicateAfter">commit</str>
    <str name="replicateAfter">startup</str>
     <str name="replicateAfter">optimize</str>
    <str name="confFiles">schema.xml,stopwords.txt</str>
 </lst>
 <lst name="slave">
    <str name="enable">${enable.slave:false}</str>
    <str name="masterUrl">http://${MASTER_CORE_URL}/${solr.master.core.name}/replication</str>
    <str name="pollInterval">${POLL_TIME}</str>
 </lst>

从站似乎在轮询间隔后获得更新。但我的要求是在向主服务器提交/优化后立即更新从服务器的索引。Master 可以在提交/优化时与从属通信吗?还是从从站到主站的通信只有一种方式?有人可以帮忙回答这些问题吗?谢谢!

4

2 回答 2

5

所以,这就是答案。ReplicateAfter 告诉 Master 何时在 slave 请求更新时提供新版本的索引(感谢 Raticulin 的回答!)

于 2012-05-31T13:34:48.963 回答
2

从站不断轮询主站,主站不发起与从站的任何通信。您应该将 ${POLL_TIME} 足够低,以便在 master 上提交后复制会非常快地发生。

于 2012-05-30T23:08:30.740 回答