Post commit calls are made before a new searcher is opened. Might be easier to try to hook in with a new searcher listener?
On Feb 21, 2012, at 8:23 AM, eks dev wrote: > 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 - Mark Miller lucidimagination.com