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.

Data Loading on the Asset Management Instance

Notice the connector in the second diagram that runs between the Asset Management Instance and the IndexingOutputConfig component on the Production Instance:

Data Loading 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:

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:

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.

 
loading table of contents...