HCL Commerce Version 9.1.10.0 or later

Release changes to the Query service

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.