The atg.endeca.index.EndecaIndexingOutputConfig
class has a number of properties that configure various aspects of the record creation and submission process:
indexingApplicationConfiguration
The component of class atg.endeca.index.configuration.IndexingApplicationConfiguration
used to configure indexing settings for the integration. For both the ProductCatalogOutputConfig
and CategoryToDimensionOutputConfig
components, the default setting is:
indexingApplicationConfiguration=\
/atg/endeca/index/IndexingApplicationConfiguration
definitionFile
The full Nucleus pathname of the XML indexing definition file that specifies the repository item types and properties to include in the Guided Search records. For the /atg/commerce/search/ProductCatalogOutputConfig
component, this property is set as follows:
definitionFile=/atg/commerce/endeca/index/product-sku-output-config.xml
For /atg/commerce/endeca/index/CategoryToDimensionOutputConfig
:
definitionFile=/atg/commerce/endeca/index/category-dim-output-config.xml
See the Configuring EndecaIndexingOutputConfig Definition Files chapter for information about the definition file’s elements and attributes that configure how GSA repository items are transformed into Guided Search records.
repository
The full Nucleus pathname of the repository that the definition file applies to. For both the ProductCatalogOutputConfig
and CategoryToDimensionOutputConfig
components, this property is set to the product catalog repository:
repository=/atg/commerce/catalog/ProductCatalog
It is also possible to specify the repository in the indexing definition file using the repository-path
attribute of the top-level item
element. If the repository is specified in the definition file and also set by the component’s repository
property, the value set by the repository
property overrides the value set in the definition file.
Note that in an ATG Content Administration environment, the repository should not be set to a versioned repository. Instead, it should be set to the corresponding unversioned target repository. For example, an EndecaIndexingOutputConfig
component for a product catalog in an ATG Content Administration environment could be set to:
repository=/atg/commerce/catalog/ProductCatalog_production
repositoryItemGroup
A component of a class that implements the atg.repository.RepositoryItemGroup
interface. This interface defines a logical grouping of repository items. Items that are not included in this logical grouping are excluded from the index. For the CategoryToDimensionOutputConfig
component, this property is set by default to null (so no items are excluded). For the ProductCatalogOutputConfig
component, repositoryItemGroup
property is set by default to:
repositoryItemGroup=/atg/commerce/search/IndexedItemsGroup
The IndexedItemsGroup
component uses this targeting rule set to select only products that have an ancestor catalog:
<ruleset> <accepts> <rule op=isNotNull> <valueof target="computedCatalogs"> </rule> </accepts> </ruleset>
This rule set ensures that the index does not include products that are not part of the catalog hierarchy.
It is also possible to specify a repository item group in the indexing definition file using the repository-item-group
attribute of the top-level item
element. If a repository item group is specified in the definition file and also by the component’s repositoryItemGroup
property, the value set by the repositoryItemGroup
property overrides the value set in the definition file.
Note that the IndexedItemGroup
component has a repository
property that specifies the repository that the items are selected from. This value must match the repository that the ProductCatalogOutputConfig
is associated with.
For more information about targeting rule sets, see the Personalization Programming Guide.
documentSubmitter
The component (typically of class atg.endeca.index.RecordStoreDocumentSubmitter
) to use to submit records to the appropriate CAS record store. For the ProductCatalogOutputConfig
component, this property is set as follows:
documentSubmitter=/atg/endeca/index/DataDocumentSubmitter
For the CategoryToDimensionOutputConfig
component:
documentSubmitter=/atg/endeca/index/DimensionDocumentSubmitter
See Document Submitter Components for more information.
forceToBaselineOnChange
If true
, a baseline update is performed when a partial update is requested, if a value of a hierarchical dimension has been changed. For CatalogToDimensionOutputConfig
, this property is set to true
by default, because the component generates category dimension values, which are hierarchical. For ProductCatalogOutputConfig
, this property is set to false
by default, because the component does not generate hierarchical dimension values.
configRepositoryItemChangedProcessor
A component of a class that implements the atg.repository.search.indexing.ConfigRepositoryItemChangedProcessor
interface. For CatalogToDimensionOutputConfig
, this property is set to /atg/commerce/endeca/index/CategoryRepositoryItemChangedProcessor
. This component is responsible for preventing category
items from being added to the incremental item queue unnecessarily.
If the forceToBaselineOnChange
property is true
, a baseline update is triggered when a partial update is requested, if the incremental item queue contains any category
items. In some cases, the baseline update is not really necessary, because the category
item changes do not affect the category dimension values (for example, changes to properties that are not included in the indexed records). In this situation, CategoryRepositoryItemChangedProcessor
prevents the changes from being added to the queue, so a baseline update is not triggered.
bulkLoader
A Nucleus component of class atg.endeca.index.RecordStoreBulkLoaderImpl
. This is typically set to /atg/search/repository/BulkLoader
. Any number of EndecaIndexingOutputConfig
components can use the same bulk loader.
See Data Loader Components for more information.
enableIncrementalLoading
If true
, incremental loading is enabled.
incrementalLoader
A Nucleus component of class atg.endeca.index.RecordStoreIncrementalLoaderImpl
. This is typically set to /atg/search/repository/IncrementalLoader
. Any number of EndecaIndexingOutputConfig
components can use the same incremental loader.
See Data Loader Components for more information.
excludedItemsAncestorIds
A list of the IDs of the items whose child items should not be indexed. For example, Commerce Reference Store excludes products and SKUs that are not part of the standard catalog hierarchy (such as gift wrapping) by setting the excludedItemsAncestorIds
property of the ProductCatalogOutputConfig
component to:
excludedItemsAncestorIds=\
NonNavigableProducts,homeStoreNonNavigableProducts
Note that an item is excluded only if all of its ancestor items are specified. So to exclude a product that is several levels deep in the catalog hierarchy, excludedItemsAncestorIds
must list all of the categories in the path to the product you want to exclude. If there are multiple paths to an item, all of its ancestor categories in all of those paths must be listed in excludedItemsAncestorIds
, or the item will not be excluded. For example, if all of a product’s ancestors in one path are excluded, but there is another path to this product and some of the categories in that path are not excluded, the product will be indexed.
siteIDsToIndex
A list of site IDs of the sites to include in the index. The value of this property is used to automatically set the value of the sitesToIndex
property, which is the actual property used to determine which sites to index. If siteIDsToIndex
is explicitly set to a list of site IDs, sitesToIndex
is set to the sites that have those IDs. If the value of siteIDsToIndex
is null (the default), sitesToIndex
is set to a list of all enabled sites. So it is only necessary to set siteIDsToIndex
if you want to restrict indexing to only a subset of the enabled sites.
replaceWithTypePrefixes
A list of the property-name prefixes that should be replaced with the item type that the property is associated with. In this list, a period (.
) specifies that a type prefix should be added to properties of the top-level item, which is product
for ProductCatalogOutputConfig
and category
for CategoryToDimensionOutputConfig
.
For ProductCatalogOutputConfig
, the replaceWithTypePrefixes
property is set by default to:
replaceWithTypePrefixes=.,childSKUs
This means, for example, that the brand
property of the product
item is given the name product.brand
in the output records, and the onSale
property of the sku
item (which appears in the definition file as the childSKUs
property of the product
item) is given the name sku.onSale
. Properties that are specific to a sku
subtype are prefixed with the subtype name in the output records. For example, Commerce Reference Store has a furniture-sku
subtype, so the woodFinish
property (which is specific to this subtype) is given the output name furniture-sku.woodFinish
, while onSale
(which is common to all SKUs) is given the name sku.onSale
.
Adding these prefixes ensures that there is no duplication of property or dimension names in Guided Search, in case different repository item types (or records from other sources) have identically named properties.
For CategoryToDimensionOutputConfig
, the replaceWithTypePrefixes
property is set to:
replaceWithTypePrefixes=.
This means, for example, that the ancestorCatalogIds
property of the category
item is given the name category.ancestorCatalogIds
in the output records.
If replaceWithTypePrefixes
is null, the behavior is the same as if the property is set to a period; the type prefix is added to the names of the output properties of the top-level item. Note, however, that in this case the behavior is due to a default in the Java class, rather than the Nucleus configuration. So if you add a setting like the following in a properties file, the class default will no longer be in effect, which means the type prefix will not be added to properties of the top-level item:
replaceWithTypePrefixes+=childSKUs
To get the desired results, you should instead use a setting like this:
replaceWithTypePrefixes=.,childSKUs
prefixReplacementMap
A mapping of property-name prefixes to their replacements. This mapping is applied after any type prefixes are added by replaceWithTypePrefixes
.
For ProductCatalogOutputConfig
, prefixReplacementMap
is set by default to:
prefixReplacementMap=\
product.ancestorCategories=allAncestors
So, for example, the ancestorCategories.displayName
property is renamed to product.ancestorCategories.displayName
by applying replaceWithTypePrefixes
, and then the result is renamed to allAncestors.displayName
by applying prefixReplacementMap
.
For CategoryToDimensionOutputConfig
, prefixReplacementMap
is set to null by default, so no prefix replacement is performed.
suffixReplacementMap
A mapping of property-name suffixes to their replacements. In addition to any mappings you specify in the properties file, the following mappings are automatically included:
$repositoryId=repositoryId,
$siteId=siteId,
$url=url,
$baseUrl=baseUrl
These mappings remove the dollar-sign ($) character from the names of special repository properties, because this character is not valid in Guided Search property names.
The suffixReplacementMap
property is set to null by default for both ProductCatalogOutputConfig
and CategoryToDimensionOutputConfig
, which means only the automatic mappings are used. You can exclude the automatic mappings by setting the addDefaultOutputNameReplacements
property to false
.