Apache Solr 7.3.1 integration

The core of the HCL Commerce Search application is the powerful Apache Solr search engine. Before Version 9.0.0.5, HCL Commerce used Solr version 5.5.4. In versions 9.0.0.5+, Solr 7.3.1 is used. Several changes in Solr 7.3.1 affect your customizations and how you use Solr.

Range query format

The Solr version 5.5.4 range query format is no longer supported in version 7.3.1.

An example is the default price range facet. Before HCL Commerce Version 9.0.0.5, the price facet in the SRCHATTRPROP database table takes the following format.
price_USD:{* 100} 100;{100 200} 200;{200 300} 300;{300 400} 400;{400 500} 500;{500 *}
In Solr version 7.3.1, this format causes a syntax error in the query parser. If you are using HCL Commerce version 9.0.0.5+, change the query string into the following format.
price_USD:{* TO 100];{100 TO 200];{200 TO 300];{300 TO 400];{400 TO 500];{500 TO *}
Note: Convert all previous range query formats that take the form "({lower upper} upper)" into "({lower TO upper])". Migrate other customization that involves the old query format to the new one.

Default schema field types

Upgrade the default schema field types. Starting with Solr version 7.0.0, the Trie*Field fields are deprecated. Replace them with *PointField. The default setting retains the old data type fields (for example, int, tint, sint) and creates new fields (for example, pint, pints). Although the old fields still function, it is advisable to upgrade the old data type to the new one. Some deprecated fields are still used, for example, protected field types, for compatible considerations.

Customized solrconfig.xml parameters

Migrate any customized solrconfig.xml parameters.

For Solr version 7.3.1, place the configuration parameter solr.mergeFactor in the solrconfig.xml file into the SRCHCONFEXT.CONFIG column. It is replaced by two parameters: solr.mergePolicy.maxMergeAtOnce and solr.mergePolicy.segmentsPerTier. If you previously set the value to something like <mergeFactor>5</mergeFactor>, replace it with solr.mergePolicy.maxMergeAtOnce=5,solr.mergePolicy.segmentsPerTier=5.