Версия индекса Solr и версия реплицируемого индекса различны
Я использую solrJ для добавления документов на сервер Solr. У меня есть настройка master/slave. После индексации я делаю коммит через http://URL/update?commit=true
так что я могу сделать поиск в главном узле. Но для репликации, когда я вижу подробности indexversion, используя replication? Command = details, я вижу, что indexverion и replicatableindexversion отличаются.
`<arr name="commits">
<lst>
<long name="indexVersion">1346928051888</long>
<long name="generation">1907</long>
<arr name="filelist"></arr>
</lst>
</arr>
<str name="isMaster">true</str>
<str name="isSlave">false</str>
<long name="indexVersion">1346928051888</long>
<long name="generation">1907</long>
<lst name="master"><arr name="replicateAfter"><str>commit</str>
<str>startup</str></arr>
<str name="replicationEnabled">true</str>
<long name="replicatableIndexVersion">1346928046763</long>
<long name="replicatableGeneration">1</long></lst>
</lst>`
Because of this the slave is not replicating the commited document.
Here is the code i used for solrJ to add documents
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
SolrInputDocument doc = new SolrInputDocument();
doc.add(FIELDS);
docs.add(doc);
SolrInputDocument doc = new SolrInputDocument();
doc.add(FIELDS);
docs.add(doc);
SolrInputDocument doc = new SolrInputDocument();
doc.add(FIELDS);
docs.add(doc);
server.add(docs);
server.commit();
Я что-то здесь упускаю? Любая помощь высоко ценится. Спасибо
1 ответ
Я бы постарался не собирать репликацию после коммита и запуска. Это вызывает некоторые проблемы. Попробуйте репликацию только после коммита.
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<str name="replicateAfter">commit</str>
<str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>
<str name="commitReserveDuration">00:00:10</str>
</lst>
<str name="maxNumberOfBackups">1</str>
</requestHandler>
Это работает так?