The order and profile search configuration is comprised of the following:

Indexing Methods

Order and profile search support both incremental and bulk indexing. Incremental indexing occurs in real time, and as such, does not require an index deployment.

Incremental indexing is enabled by default, which is configured using the Indexing Service, to check for modifications to profiles and orders every five seconds from multiple environments. During some operations, such as modification, backup or restoration of an environment, incremental indexing is not available. During these operations, incremental updates are queued until incremental indexing is restored.

Bulk indexing, which is started from the IOC component, recreates the complete index and is performed in a temporary staging environment. When the bulk indexing job is completed, the temporary staging environment is swapped with the live environment. During the time that the bulk index is running, searches are performed in the live environment. However, incremental updates are queued and not applied until the bulk indexing job has completed and the environments are swapped.

Profile and order require separate Search projects. This allows both profiles and orders to be indexed concurrently as indexing jobs from separate search environments can be run in parallel.

Customer profile and order information is queued using IncrementalItemQueue, which obtains requests from any server and are processed on the server(s) that executes the indexing request.

Note: Set the /atg/search/repository/IncrementalLoader/
recordIncompleteOrderEvents
to false to enable filtering of incomplete orders.

Order and Profile Search Components

The following components from DAF.Search.Index are used for order and profile searches. For additional information on these components, refer to the ATG Search Installation and Configuration Guide.

  • /atg/search/repository/IncrementalItemQueue

  • /atg/search/repository/IncrementalItemQueueRepository

  • /atg/search/repository/ConfigStatePersister

  • /atg/search/repository/ConfigAndRepositoryPersister

  • /atg/search/repository/IncrementalLoader - DPS.Search.Index appends the ProfileOutputConfig to the monitoredOutputConfig property. DCS.Search.Order.Index appends the OrderOutputConfig to the monitoredOutputConfig property. When the IndexingPeriodicService runs, the IncrementalLoader will process queued indexing requests for each of the IOCs.

  • /atg/search/repository/BulkLoader

  • /atg/search/repository/IndexingPeriodicService – Configured in DPS.Search.Index to run every two seconds by default. All servers are configured with the IndexingPeriodicService enabled but only indexes any IOC that has the component enableIncrementalLoading=true and incrementalUpdateSeconds>0. As such, you should only set the incrementalUpdateSeconds>0 on servers that will be used for indexing.

    The OrderOutputConfig.incrementalUpdateSeconds is set to 30 by default to ensure that at least one server will process the queued incremental indexing requests. In a production environment, it is recommended that you set incrementalUpdateSeconds=-1 on the agent-facing server and configure incrementalUpdateSeconds>0 on the management server. Incremental indexing can be enabled on any background server that is running DPS.Search.Index, and DCS.Search.Order.Index for servers.

    The IndexingPeriodicService clears any expired configuration claim locks each time it runs using the checkExpiredConfigurationClaimsIntervalSeconds property, which checks for expired configuration claim locks every n seconds. Each time the IndexingPeriodicService runs, it checks if the time elapsed has exceeded this interval

The following components are also used in the order and profile search process:

Component

Description

/atg/userprofiling/search/
ProfileOutputConfig

The profile IOC. Defined in the DPS.Search.Index module so that an indexing request can be queued wherever a profile is added or updated. The component creates the profile-output-config.xml definition file.

/atg/commerce/search/
OrderOutputConfig

The order IOC. Defined in the DCS.Search.Order.
Index
module so that an order indexing request can be queued wherever an order is added or updated. The component creates the order-output-config.xml definition file.

/atg/search/repository/
LiveDocumentSubmitter

A special document submitter that updates the index in near real time. This component is defined in the DAF.Search.Index module.

/atg/commerce/search/
OrderProfileIdPropertyAccessor

Uses the atg.repository.search.indexing.
accessor.ItemIdPropertyAccessor
class that retrieves properties from an item where the item is referenced by ID. In this case, the order item references the user item by Profile ID.

/atg/userprofiling/search/
AddressPropertyAccessor

Uses the atg.repository.search.indexing.
accessor.ConcatenatePropetyAccessor
class to concatenate address1, address2 and address3 into a single indexed address meta property.

/atg/search/repository/
AlphaNumericPropertyAccessor

Removes non-alpha-numeric characters from the indexed meta property. Used to strip white space and punctuation from phoneNumber to promote better search consistency.

 
loading table of contents...