code: public void updateIndex(ChangesHolder changes, ChangesHolder parentChanges)
     {
        // pass lists to search manager 
        if (searchManager != null && changes != null)
        {
           try
           {
              searchManager.apply(changes);
           }
           catch (RepositoryException e)
           {
              log.error("Error indexing changes " + e, e);
           }
           catch (IOException e)
           {
              log.error("Error indexing changes " + e, e);
              try
              {
                 handler.logErrorChanges(new HashSet<String>(changes.getRemove()), new HashSet<String>(changes
                    .getAddIds()));
              }
              catch (IOException ioe)
              {
                 log.warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
              }
           }
        }
        // pass lists to parent search manager 
        if (parentSearchManager != null && parentChanges != null)
        {
           try
           {
              parentSearchManager.apply(parentChanges);
           }
           catch (RepositoryException e)
           {
              log.error("Error indexing changes " + e, e);
           }
           catch (IOException e)
           {
              log.error("Error indexing changes " + e, e);
              try
              {
                 parentHandler.logErrorChanges(new HashSet<String>(parentChanges.getRemove()), new HashSet<String>(
                    parentChanges.getAddIds()));
              }
              catch (IOException ioe)
              {
                 log.warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
              }
           }
        }
     }
docs: Flushes lists of added/removed nodes to SearchManagers, starting indexing.