Indexing Tutorial
The Indexing service is designed to manage indexing configuration. Currently supported index providers:
Proper indexing allows you to enhance your search mechanism within the Emporix system. By connecting an index provider to Commerce Engine, you get improved search functionality.
To learn more about the Indexing Service, see the Indexing Service.
Provider mutual exclusivity
Only one provider can be active at a time per tenant. This constraint is enforced by the configuration service.
Battery Included limitations
This functionality is in preview mode - some of the features may not be fully operational yet. The payload sent to Battery Included is subject to change.
Battery Included only supports the MERGE site-aware fields strategy. Tenants configured with the SPLIT strategy will have Battery Included indexing silently skipped.
Algolia limitations
By default, Algolia indexes provided by Emporix support records up to 10kB in size. In order to support larger records, you must provide your own Algolia service. For more information, please refer to documents provided by Algolia:
For every tenant, new Algolia credentials are created and kept as AlgoliaClient.
The Indexing service uses separate API keys for every tenant, so that you get more flexibility in configuration.
How to configure search indexing
To create indexing configuration, send a request to the Creating new configuration endpoint.
To test the endpoint, open the API reference or check the example of a curl request.
For the BATTERY_INCLUDED provider, the same configuration endpoints also support mixin filtering options:
excludedMixinKeys- optional list of top-level mixin keys to excludeincludedMixinPaths- optional list of glob patterns that allowlist mixin paths
The includedMixinPaths option is matched against full dot-notation mixin paths rooted at the mixin key, for example class_EA673_toolsClassification.sk.OnlineIsService_P.
Supported glob syntax:
*matches any characters within a single path segment**matches across one or more path segments.separates path segments
Matching is case sensitive and uses full-path matching. If a matched path points to an object, the whole subtree under that object is included.
Behavior:
if
includedMixinPathsis absent or an empty list ([]), allowlist filtering is inactiveif
includedMixinPathsis non-empty, only matching mixin paths are sent to Battery IncludedincludedMixinPathsandexcludedMixinKeysmust not both be non-empty in the same requestmalformed glob patterns are rejected with a
400validation error on configuration writes
Example of the Battery Included configuration:
How to update the index configuration
To update the index configuration you need to retrieve the writeKey first. Send the request to the Get configuration by provider name endpoint.
To test the endpoint, open the API reference or check the example of a curl request.
To change configuration, make a call to the Update configuration by provider name endpoint, providing the writeKey from the previous step.
To test the endpoint, open the API reference or check the example of a curl request.
For BATTERY_INCLUDED, includedMixinPaths filtering is applied to the raw source mixin tree before the localized and non-localized mixin split. The retained data is then written to the existing Battery Included mixin fields, such as _product.mixins and _product_i18n.<lang>.mixins.
To apply your configuration changes to existing data, run the reindexing process. See the How to reindex existing products section.
How to reindex existing products
Usually, reindexing runs upon the update of a product or its dependant entity, such as category, price, or media. The scheduler job discovers what has been changed and pushes the changes to index frequently. But, if you change your index configuration, you need to trigger the reindexing process to apply your configuration changes. You can run the reindex without the need to update all your resource data by sending the request to the Reindex endpoint.
To test the endpoint, open the API reference or check the example of a curl request.
This operation starts the full reindexing mode.
How to retrieve public search configuration
How to retrieve public search configuration
If you want to get your storefront index configuration without the need to update, you can call the public endpoint to get the searchKey. Send the request to the Get all public configurations endpoint.
To test the endpoint, open the API reference or check the example of a curl request.
How to choose indexing strategy
You can choose between two indexing strategies for your search index configuration: MERGE and SPLIT. MERGE strategy creates a single index for all sites declared in the system, while SPLIT creates a separate index for each site. To choose the right mode for your index, send the request to the Updating a configuration endpoint.
To test the endpoint, open the API reference or check the example of a curl request.
In the request parameters, for the propertyKey choose indexing_siteAwareFieldsStrategy. In the request body, pass the chosen strategy value.Please remain patient as propagating changes to the index strategy may take up to 1 hour, so you might not be able to see the changes instantly.
Last updated
Was this helpful?

