On Sat, May 30, 2009 at 6:45 AM, mlathe <mla...@gmail.com> wrote: > > I would like to provide an admin interface (in a different system) that > would update the synonyms.txt file and automatically inform a set of Solr > instances that are being replicated to update their synonyms.txt file too. > > This discussion shows a possible solution: > > http://www.nabble.com/Refresh-of-synonyms.txt-without-reload-td19629361.html > Namely use the CoreAdmin system to do a RELOAD, rather than forcing tomcat > to reload the webapp. > > Here is my setup: > 1) I made these instances (both are separate webapps running one core named > "core", this allows me to use the CoreAdmin): > http://localhost:8080/solr_rep_master/core/admin/ > http://localhost:8080/solr_rep_slave1/core/admin/ > 2) the master's config looks like this: > <lst name="master"> > <str name="replicateAfter">startup</str> > <str name="replicateAfter">commit</str> > <str name="snapshot">startup</str> > <str name="snapshot">commit</str> > <str name="confFiles">schema.xml,stopwords.txt,synonyms.txt</str> > </lst> > 3) the slave's config looks like this: > <lst name="slave"> > <str > name="masterUrl">http://localhost:8080/solr_rep_master/core/replication > </str> > <str name="pollInterval">00:00:20</str> > <str name="compression">internal</str> > </lst> > > First Question: > If i update the "solr_rep_master"'s conf/synonyms.txt file and GET > http://localhost:8080/solr_rep_master/admin/cores?action=RELOAD&core=core, > the config is not replicated to the slave. Isn't a "RELOAD" considered a > startup in regards to the master's replicateAfter setting? >
Yes, it is. Let me run a few tests to see if I can reproduce this. > Second Question: > If i force an empty commit, like this: > curl > http://localhost:8080/solr_rep_master/core/update?stream.body=%3Ccommit/%3E > Then the changed synonym.txt config file are replicated to the slave. > Unfortunately now I need to do a core "RELOAD" on both the master and slave > to get them to see the updated synonym.txt file. > Calling RELOAD on slave should not be necessary. If a configuration file is replicated, the slave is always reloaded. Can you try using the analysis.txt on a field which has the SynonymFilterFactory enabled to see if the new file is indeed not getting used? -- Regards, Shalin Shekhar Mangar.