This section addresses configuration options for indexing versioned data managed by ATG Content Administration, such as a product catalog. Repository indexing relies on the IndexingOutputConfig
component. This installation guide discusses this component in terms of configuring your installation architecture; for other information on this component, see the ATG Commerce Search Guide.
Selecting a Data Loading Location
You will have to decide whether you want data loading to run on your asset management server or your production server (see the Loading the Data into ATG Search section of the ATG Commerce Search Guide for information on this process). Consider the following factors when making your decision:
Size of your site. The main benefit to loading data on the asset management server is that it relieves load on the production server; asset management-side loading may be appropriate if you have a relatively small site. Alternatively, data loading on production is more appropriate if you have a large site and can dedicate additional non-DRP servers to handle the load.
Data availability. You may have data that is available to production, but not to the asset management server, such as inventory information.
When you add repository content to a Search project in Search Administration, you specify local or remote location. If Search Administration is running on your asset management server, select Local to load data on the asset management server. To load data on a production server, select Remote, and specify a production server as the host. See the ATG Search Administration Guide for details on Search projects.
The two diagrams that follow show the arrangement of components in both configurations. For simplicity, these diagrams omit the staging server and database.
Notice the connector in the second diagram that runs between the Asset Management Instance and the IndexingOutputConfig
component on the Production Instance:
Using Incremental Loading with ATG Content Administration
If you are using incremental indexing of your versioned content, whenever you modify and redeploy your content, the incremental loading system needs to be notified about the changes in order to reflect them in the next incremental index. Therefore, an IndexingOutputConfig
component (IOC) must run in the ATG Content Administration environment (asset management server) and listen for change events on the deployment repository (production server).
You can actually load the content using an IOC running on either server, as explained in the previous section. If you want to load content on the production server, configure the targetName
property of the IOC on the management server to the name of the Content Administration deployment target. However, if you are loading content on the asset management server, you must not configure this property, or loading will not work.
If you are using a secure product catalog (for instance, as part of a B2B Commerce installation), you must change the indexing configuration on the asset management server, so that it can listen for change events on the on the deployment target repository. By default, this is configured to point to the non-secure catalog repository. To do this, in the /atg/commerce/search/IndexedItemsGroup.properties
file, change the following property:
repository=/atg/commerce/catalog/ProductCatalog_production
The new value should be as shown:
repository=/atg/commerce/catalog/SecureProductCatalog
Configuring the IndexingOutputConfig Component for Versioned Repositories
If you are indexing a versioned repository and are running your indexing process on the asset management server, make sure that the IndexingOutputConfig
component and the related /atg/commerce/search/IndexedItemsGroup
are configured to point to the production repository, rather than the versioned repository.
If this configuration is incorrect, your index may not accurately reflect your published repository. This example describes how things could go wrong:
A project is checked in to Content Administration, and the IOC on the asset management server records the change in the incremental item queue.
The project is deployed to production.
Another project is checked in, and these changes are also recorded in the incremental item queue.
When incremental indexing runs, both sets of changes are processed, although the second set has not actually been deployed to production.
The result is an index that does not accurately reflect your repository, in ways for which it is difficult to test.
By default, the IndexingOutputConfig
component is configured to load product catalog data, and to be used on either the asset management or the production server. The IOC’s repository
property refers to the catalog repository as ProductCatalog
:
repository=/atg/commerce/catalog/ProductCatalog
In DCS.Search.Versioned
, this value is overridden to point to ProductCatalog_production
:
repository=/atg/commerce/catalog/ProductCatalog_production
The IOC component may also use a repositoryItemsGroup
property:
repositoryItemsGroup=/atg/commerce/search/IndexedItemsGroup
By default, IndexedItemsGroup
also points to /atg/commerce/catalog/ProductCatalog
, and is overridden by DCS.Search.Versioned
to ProductCatalog_production
.
If you are using similar components to index non-catalog repository data, be sure they are configured to point to the correct repository.
Note: You will see a warning during indexing if the IndexingOutputConfig
and IndexedItemsGroup
components’ repositories don’t match.
Synchronizing Versioned Repository Deployment and Indexing
You can configure Search components to synchronize your repository deployments with the indexing process, ensuring that changes deployed from Content Administration are reflected in your Search index as soon as possible. This means that you do not have to schedule indexing for your versioned repositories in Search Administration. You will still have to schedule indexing for any other data, such as files or other repositories that are not part of synchronized deployment.
To use synchronized deployment indexing:
If indexing a repository other than the product catalog, append your
IndexingOutputConfig
component to the list in theIndexingOutputConfigs
property of the/atg/search/repository/IndexingDeploymentListener.properties
file.Note: The product catalog
IndexingOutputConfig
is in this list by default.In Search Administration, create a Search project.
Add the appropriate
IndexingOutputConfig
component as a Content Set to the search project.Create automatic indexing rules for your Search project. See the ATG Search Administration Guide for information on automatic indexing rules.
When you deploy your catalog, indexing starts.
Note: While indexing takes place, the repository and search index are in an inconsistent state.
The IndexingOutputConfig
component includes a list of repositories to track for synchronization purposes in the synchronizedRepositories
property. For each repository, you can specify item descriptors to watch for. In the default configuration, the DCS.Search.Versioned
configuration layer adds the following configuration to the ProductCatalogOutputConfig
:
synchronizedRepositories+=\
/atg/search/repository/RefinementRepository_production=*
The asterisk tells the deployment synchronization listener that when any item type in the production refinement repository is deployed, with no catalog repository changes, run the CA_deployment_target_name
-Customizations indexing rule.
If you want to synchronize only on certain item types, you can specify the types to watch by listing them as shown:
synchronizedRepositories+=\
/atg/search/repository/RefinementRepository_production=\
itemTypeA,\
itemTypeB,\
itemTypeC
In this case, the CA_deployment_target_name
-Customizations indexing rule runs only when changes to the specified item types are deployed.