For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

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.

API Reference

For the BATTERY_INCLUDED provider, the same configuration endpoints also support mixin filtering options:

  • excludedMixinKeys - optional list of top-level mixin keys to exclude

  • includedMixinPaths - 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 includedMixinPaths is absent or an empty list ([]), allowlist filtering is inactive

  • if includedMixinPaths is non-empty, only matching mixin paths are sent to Battery Included

  • includedMixinPaths and excludedMixinKeys must not both be non-empty in the same request

  • malformed glob patterns are rejected with a 400 validation 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.

API Reference

To change configuration, make a call to the Update configuration by provider name endpoint, providing the writeKey from the previous step.

API Reference

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.

API Reference

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.

API Reference

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.

API Reference

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?