code: def refreshCatalogs(self):
          
          to_refresh = self.refreshcatalog[:]
          to_reindex = self.reindexcatalog.keys()
          to_reindex = to_reindex[:]
          done = []
          # Start reindexing the catalogs with new columns
          for catalog_to_refresh in to_refresh:
              logger.info(
                  'Catalog {0} refreshing started'.format(catalog_to_refresh))
              catalog = getToolByName(self.portal, catalog_to_refresh)
              handler = ZLogHandler(self.pgthreshold)
              catalog.refreshCatalog(pghandler=handler)
              logger.info('Catalog {0} refreshed'.format(catalog_to_refresh))
              transaction.commit()
              done.append(catalog_to_refresh)
          # Now the catalogs which only need reindxing
          for catalog_to_reindex in to_reindex:
              if catalog_to_reindex in done:
                  continue
              logger.info(
                  'Catalog {0} reindexing started'.format(catalog_to_reindex))
              catalog = getToolByName(
                  self.portal, catalog_to_reindex)
              indexes = self.reindexcatalog[catalog_to_reindex]
              handler = ZLogHandler(self.pgthreshold)
              catalog.reindexIndex(indexes, None, pghandler=handler)
              logger.info('Catalog {0} reindexed'.format(catalog_to_reindex))
              transaction.commit()
              done.append(catalog_to_reindex)
docs: It reindexes the modified catalogs but, while cleanAndRebuildCatalogs
          recatalogs all objects in the database, this method only reindexes over
          the already cataloged objects.
  
          If a metacolumn is added it refreshes the catalog, if only a new index
          is added, it reindexes only those new indexes.