Product Search features enhance product discoverability through your storefront.
Product Search features
Product indexing
Indexing is a process carried out by the API to build the search index for your product information, which is optimized for read access with low response times.
If you retrieve product information using the Products API or Product Projections API before indexing is complete, the product data in the search index might be different.
The search index is automatically updated whenever Products are changed.
| Functionality | Product Search |
|---|---|
| Indexed projection of the Products | current |
| Support for Variant-level Attributes | variants.attributes.<attribute-name> expression, up to 50 Attributes per Product Variant |
| Support for Product-level Attributes BETA | attributes.<attribute-name> expression, up to 50 Attributes per Product Variant |
| Support for Standalone Prices | for sorting, filtering, and faceting, up to 10 000 Standalone Prices per Product |
| Support for validity periods of Prices | variants.prices.* keyword fields |
| Support for Stores | stores keyword field, up to 15 000 Stores per Product |
| Support for Product Selections | productSelections keyword field, up to 15 000 Product Selections per Product |
| Support for Product Tailoring | with GraphQL |
Query expressions
| Functionality | Product Search |
|---|---|
| Full-text search | fullText expression |
| Fuzzy search | fuzzy expression |
| Exact match | exact expression |
| Range of values | range expression |
| If field exists | exists expression |
| Prefix match | prefix expression |
| Wildcard match | wildcard expression |
| Boosting particular searchable fields | boosting |
| Specify query expressions per searchable field | by field name |
| Operators to define compound expressions | and, or, not, filter operators |
Query result
By default, the Product Search API returns only the IDs of the matching Products. You can use the returned Product IDs to retrieve the full projection of a Product (Get Product Projection by ID).
| Functionality | Product Search |
|---|---|
| IDs of the matching Products | by default |
| Full representations of the matching Products | with GraphQL |
| Price selection | with GraphQL |
| Scoped Price search | with filter by price |
Full-text search
| Functionality | Product Search |
|---|---|
| Specific to different languages | supported languages |
| Allow to specify which Product fields should be taken into account. | language parameter in fullText expression |
Fuzzy search
| Functionality | Product Search |
|---|---|
| The fuzziness level adjusts automatically based on term length. | Set maximum level with level parameter in fuzzy expression. |
| Allows you to specify which Product fields to include. | field parameter in fuzzy expression |
Filtering
| Functionality | Product Search |
|---|---|
| Non-facet-driven filter (for example by Category, Attribute values, full-text search) that both results and every facet's base set inherit. | query in ProductSearchRequest |
| Narrow the set of returned products after facets are calculated. | postFilter in ProductSearchRequest |
| Narrow the calculated facet results. | filter in facet expressions |
Faceting
| Functionality | Product Search |
|---|---|
| Count all occurrences of distinct values. | distinct facets |
| Count Products that have values within a specified range. | ranges facets |
| Count the number of Products or Product Variants. | count facets |
| Calculate statistics for facet values. | stats facets |
| Allow for handling missing values when calculating facets. | missing values |
| Filter facet results. | filter facet |
| Specify scope of facets. | scope of facets |
| Assign a custom name to a facet result. | name in facet expression |
Sorting
| Functionality | Product Search |
|---|---|
| Sort order (ascending or descending) | asc and desc sort order |
| Sort mode to specify which value to sort on when a Product contains multiple values for the field | min, max, avg, sum sort mode |
| Specify exactly which resources should be considered for sorting. | sort filter |
Sort by a localized field, such as name | language property on the sort object |
| Sort by CategoryOrderHints | structured sort object |
Pagination
| Functionality | Product Search |
|---|---|
Maximum results per page (limit) | 100 |
| Maximum total results reachable through pagination | first 10 000 results |
| Error when the offset exceeds the maximum | InvalidInput error |