Hi all,
I am a bit confused with IndexSearcher refresh lifecycles...
In a master slave setup, I override postCommit listener on slave
(solr trunk version) to read some user information stored in
userCommitData on master
----------
@Override
public final void postCommit() {
// This returnes "stale" information that was present before
replication finished
RefCounted<SolrIndexSearcher> refC = core.getNewestSearcher(true);
Map<String, String> userData =
refC.get().getIndexReader().getIndexCommit().getUserData();
}
------------
I expected core.getNewestSearcher(true); to return refreshed
SolrIndexSearcher, but it didn't
When is this information going to be refreshed to the status from the
replicated index, I repeat this is postCommit listener?
What is the way to get the information from the last commit point?
Maybe like this?
core.getDeletionPolicy().getLatestCommit().getUserData();
Or I need to explicitly open new searcher (isn't solr does this behind
the scenes?)
core.openNewSearcher(false, false)
Not critical, reopening new searcher works, but I would like to
understand these lifecycles, when solr loads latest commit point...
Thanks, eks