A key aspect of the dynamic navigation feature is the use of refinement configuration files. These are the XML files that specify to ATG Search how to divide search results into subsets based on the values of a faceting property. These files are automatically generated and submitted to ATG Search whenever bulk loading or incremental loading is initiated. When the dynamic navigation components issue queries to ATG Search, they automatically determine which refinement configuration file should be used and specify it in the query.
Depending on the structure of your product catalog and the number of facets you’ve specified in ATG Merchandising, the number of refinement configuration files generated can vary greatly. If you are using a standard catalog and have created a small number of facets, only a few refinement configuration files may be necessary. If you are using custom catalogs and have created many facets, hundreds or even thousands of refinement configuration files may be required. Therefore, the generation of these files is handled through an automated process that inspects the product catalog and the refineElement
repository items, determines the set of refinement configuration files needed, generates those files, and submits them to ATG Search.
In addition to the properties described in Configuring Bulk Loading, the IndexingOutputConfig
class has a property called indexingSynchronizations
, which takes as its value an array of Nucleus components that implement the atg.repository.search.indexing.IndexingSynchronization
interface. This interface includes afterSessionStart
and beforeSessionEnd
methods for invoking additional processes immediately after a DocumentSubmitter
session begins or immediately before a session ends.
The indexingSynchronizations
property of the ProductIndexingOutputConfig
component is set by default to /atg/commerce/search/refinement/RefinementConfigurationSubmitter
. This is a component of class atg.commerce.search.refinement.admin.RefinementConfigurationSubmitter
, which implements the IndexingSynchronization
interface. When bulk or incremental loading is initiated, the RefineConfigurationSubmitter.afterSessionStart()
method invokes the service that generates the refinement configuration files, and then submits these files to ATG Search.