Catalogs are object managing Plone search data - they store indexed data and act as an start point for search query.
The default Plone catalog, where all content is indexed, is called portal_catalog.
It is in the portal root.
The best way to learn what’s inside portal_catalog, is to click its various s in Zope Management Interface.
Besides, portal_catalogs, the site contains other catalogs.
The default content objectreindexObject() is defined in CMFCatalogAware and will update the object data to portal_catalog.
If your code uses additional catalogs, you need to manually update cataloged values after the object has been modified.
Example:
# Update email_catalog which mantains loggable email addresses
email_catalog = self.portal.email_catalog
email_catalog.reindexObject(myuserobject)
Catalog rebuild means walking through all the objects on Plone site and adding them to the catalog. Rebuilding the catalog is very slow as the whole database must be read through. Reasons for you to do this in code could be
How to trigger rebuild:
portal_catalog = self.portal.portal_catalog
portal_catalog.clearFindAndRebuild()
archetype_tool maintains map between content types and catalogs which are interested int them. When object is modified through Archetypes mechanisms, Archetypes post change notification to all catalogs enlisted.
See Catalogs tab on archetype_tool in Zope Management Interface.