The IncrementalLoader
component monitors when changes are made to the values of properties specified in an EndecaIndexingOutputConfig
component’s definition file, and adds the modified items to the incremental item queue. So, for example, if the color
property of a SKU in the product catalog is modified, that SKU is added to the incremental item queue for reindexing.
Prices in price lists, however, are not referenced directly by catalog items; instead, price
items in the price list repository have references to the products or SKUs they apply to. So changes to price
items do not automatically trigger reindexing of the corresponding product or SKU.
The atg.repository.search.indexing.listener.QueueingPropertiesChangeListener
class addresses this issue by providing a mechanism for triggering reindexing of items in one repository based on changes to items in another repository. Oracle Commerce includes a component of this class, /atg/commerce/search/PriceListPropertiesChangedListener
, that is configured to monitor changes to price
items in the price list repository and add products and SKUs that they reference to the incremental item queue.
The following describes key properties of the QueueingPropertiesChangeListener
class, and their default settings in the PriceListPropertiesChangedListener
component.
incrementalLoader
The IncrementalLoader
component to use. This component is responsible for queueing changes in the incremental item queue. This property is set to:
incrementalLoader=/atg/search/repository/IncrementalLoader
repository
The repository whose items are monitored for changes. This property is set to the price list repository:
repository=/atg/commerce/pricing/priceLists/PriceLists
itemDescriptorName
The item type of the repository items to monitor for changes. This property is set to:
itemDescriptorName=price
referencingPropertyToIndexedRepositoryAndType
A Map in which each key is the name of a property of the monitored item type, and the corresponding value is the Nucleus pathname and item type of the item descriptor in the indexed repository that the monitored properties reference. The values are of the form repositoryPathName
:
itemDesc
riptor
Name
. For PriceListPropertiesChangedListener
, the keys are productId
and skuId
properties of price
items in the price list repository, and the values represent product
and sku
item descriptors in the catalog repository:
referencingPropertyToIndexedRepositoryAndType=\
productId=/atg/commerce/catalog/ProductCatalog:product,\
skuId=/atg/commerce/catalog/ProductCatalog:sku
monitoredPropertyNames
A list of properties of the item type specified by the itemDescriptorName
property. If the value of monitoredPropertyNames
is null (the default), all properties of the item type are monitored, and changes to the values of any of them triggers reindexing of the associated products or SKUs. If the value of monitoredPropertyNames
is not null, only the listed properties are monitored.