Updates to the Query service were made for the HCL Commerce Version 9.1.7
and 9.1.8 releases. Review this document to upgrade from previous versions.
Version 9.1.7 Query service changes
- i. Lookup Profile
- Lookup search profiles are applicable only when grouping is enabled.
Previously there were hardcoded search profile name code references.
Overriding those search profiles resulted in the expression of the
custom behavior in all scenarios referencing the profile.
- For example, previously HCL_findCatalogEntryById
was hardcoded for both term search and browse scenarios. If this search
profile was overrideen, the new behavior was expressed in both term
search and browsing scenarios with no way to isolate customization. The
lookup profile was introduced to allow a profile override with any name.
The code will check for the lookup profile first, instead of using the
hardcoded profile.
- This functional enhancement introduces a new optional
lookupProfileName attribute in the search
profile. The custom override profiles will still work as-is. See the
following custom search profile example that references a lookup
profile:
- Create a custom profile
To find a specific inventory item, add
a response field in the custom profile that specifies the
inventory number as
inventories.10501.quantity
.
{
"parentProfileName": "HCL_findProductsBySearchTerm",
"profileName": "X_findProductsBySearchTerm",
"lookupProfileName": "X_findCatalogEntryById",
"query": {
"responseFields": [
"inventories.10501.quantity",
“workspaceName”
]
}
}
- Create a lookup profile
{
"parentProfileName": "HCL_findCatalogEntryById",
"profileName": "X_findCatalogEntryById",
"query": {
"responseFields": [
"inventories.10501.quantity"
]
}
}
For more information about lookup profiles, see Inventory and custom fields in a custom search profile.
- ii. V2 search profiles
- In previous versions Search used the same search profiles for both
Aurora and React (Emerald/Sapphire) storefronts. This resulted in the
same behavior for both Aurora and React storefronts when a profile was
overridden. In Version 9.1.7, search profiles were segregated into V1
and V2 profiles to align with the V1 and V2 Query Service REST API. The
V2 search profiles are intended for use with the React storefronts,
which require the V2 REST API. The V1 search profiles are used with the
V1 REST API.
- If you are using the V2 REST API, it is recommended that you use V2
search profiles so as to stay in alignment with the evolution of the V2
REST API.
- You can find sample V2 profiles in Search profiles.
- iii. Access control for the Query Service configuration endpoints
- Authentication has been introduced to protect data-query configuration
(admin) endpoints. The data-query service has configuration endpoints
while auth-query and live-query only serve the storefront REST API
endpoints. Auth-query and live-query serve the the storefront REST APIs
for browsing for the shoppers and these API endpoints do not require
access control.
-
Note: When browsing endpoints are
accessed through auth-query and live-query, there is no impact from
migration point of view. However, accessing configuration API
endpoints through data-query now require an authentication header
with SPIUSER and password in the request.
Version 9.1.8 Query service changes
- Natural Language Processing (NLP) Profiles
- A new NLP Profile feature has been introduced in 9.1.8 to provide a
method for controlling the preprocessing flow of search terms before
executing an Elasticsearch query. These NLP Profiles can be created at
store level.
- Prior to Version 9.1.8, complete logic for NLP, such as the PartNumber,
CurrencySymbol, DMM, Color Matchmaker etc., were present in the
com.hcl.commerce.search.internal.expression.provider.SearchNLPSupportProvider
class. This logic has been moved to separate helper classes and
externalized in the form of NLP Profiles to facilitate customization in
the extension framework.
Note: There is no impact
on migration due to this functional enhancement as this is internal
refactoring of code. It does not change the existing behavior of
NLP.
For more information on NLP profiles,
see Extending Natural Language Processor profiles.
Upgrading to Version 9.1.12 Query service
When Upgrading to HCL Commerce Search Version 9.1.12.0, perform a full
re-indexing in order for the new Search Term Association (STA) function to
re-analyze the STA terms correctly.