Feature Pack 5

Enabling interim fixes JR48505 and JR43778

Interim fixes JR48505 and JR43778 introduce the ability to enable deep search sequencing in Feature Pack 5.For more information about deep search sequencing, see Unpublishing and sequencing in WebSphere Commerce search. To enable this feature in Feature Pack 5, complete the following procedure.

Before you begin

Install the cumulative interim fix for Feature Pack 5, JR53048.fep.

Procedure

  1. Add the following new index field to the solrhome/MC_catalogId/en_US/CatalogEntry/conf/schema.xml file:
    <!--
    Catentry's full navigation path: map to table CATGPENREL
    -->
    <field name="parentCatgroup_id_path" type="wc_keywordText" indexed="true" stored="true" multiValued="true"/>
  2. Open the catalog component configuration files on both the WebSphere Commerce and Search EARs for editing.
    The catalog component configuration file is stored in the following location on the WebSphere Commerce EAR:
    WC_eardir/xml/config/com.ibm.commerce.catalog-fep/wc-component.xml
    The default catalog component configuration file.
    WC_eardir/xml/config/com.ibm.commerce.catalog-ext/wc-component.xml
    The extended catalog component configuration file. This customized version of the file contains only the changed properties.
    The catalog component configuration file is stored in the following location on the Search EAR:
    Search_eardir/xml/config/com.ibm.commerce.catalog/wc-component.xml
    The default catalog component configuration file for the search application.
    Search_eardir/xml/config/com.ibm.commerce.catalog-ext/wc-component.xml
    The extended catalog component configuration file for the search application.
    For more information about the values within the file, see Search properties in the component configuration file (wc-component.xml) (WebSphere Commerce EAR)
  3. Add the newly added index column to the wc-component.xml file rank template to enable the new feature:
    <!--
       Search rule
     -->
    <!-- Formula for boosting by product/category sequence: -0.001 x rank -->
    <_config:property name="BoostByRankInCatalogAndCategory" 
    	value="product(-0.001,getSequenceByCatalogAndCategory(sequence,parentCatgroup_id_path,%s,%s))" />
    For more information about editing the wc-component.xml file, see Changing properties in the component configuration file (wc-component.xml) (WC EAR).
  4. Go to the Search_home/pre-processConfig/MC_catalogId/database directory and open the wc-dataimport-preprocess-parent-catgroup.xml file.
  5. On the search indexer, insert the snippet in bold into the wc-dataimport-preprocess-parent-catgroup.xml preprocessor configuration file:
    <_config:DIHPreProcessConfig xmlns:_config="http://www.ibm.com/xmlns/prod/commerce/foundation/config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../../xsd/wc-dataimport-preprocess.xsd ">
      <_config:data-processing-config processor="com.ibm.commerce.foundation.dataimport.preprocess.CatalogHierarchyDataPreProcesor"
        masterCatalogId="#MASTER_CATALOG_ID#" batchSize="10000">
        <_config:table definition="CREATE TABLE TI_APGROUP_#INDEX_SCOPE_TAG# (CATENTRY_ID BIGINT NOT NULL,
    		CATGROUPS VARCHAR (3000), CATPATHS VARCHAR(7000), PRIMARY KEY (CATENTRY_ID))" name="TI_APGROUP_#INDEX_SCOPE_TAG#"/>
        <_config: query sql=""/>
        <_config:mapping>
          <_config:key queryColumn="CATENTRY_ID" tableColumn="CATENTRY_ID"/>
  6. Go to the solrhome/MC_catalogId/en_US/CatalogEntry/conf directory and open the wc-data-config.xml file.
  7. Update the wc-data-config.xml file with the following snippets in bold:
    
    <dataSource name="WC database"
    	type="JdbcDataSource"
    	transactionIsolation="TRANSACTION_READ_COMMITTED"
    	holdability="CLOSE_CURSORS_AT_COMMIT"
      />
      <dataSource name="unstructuretmpfile" type="FileDataSource"
      <!-- Product start -->
    	STORECENT.STOREENT_ID,
    	TI_APGROUP.CATPATHS APCATPATH,
    	TI_ADFTB1.ADF_F1, TI_ADFTB1.ADF_F2, TI_ADFTB1.ADF_F3, TI_ADFTB1.ADF_F4, TI_ADFTB1.ADF_F5, TI_ADFTB1.ADF_F6, 
    		TI_ADFTB1.ADF_F7, TI_ADFTB1.ADF_F8, TI_ADFTB1.ADF_F9, TI_ADFTB1.ADF_F10
    	LEFT OUTER JOIN TI_ADFTB1_#INDEX_SCOPE_TAG#_#LANGUAGE_TAG# TI_ADFTB1 ON (CATENTRY.CATENTRY_ID=TI_ADFTB1.CATENTRY_ID)
    		STORECENT.STOREENT_ID,
    		TI_APGROUP.CATPATHS APCATPATH,
    		TI_CATALOG.CATALOG PARENT_CATALOG_ID,
    		TI_ADFTB1.ADF_F1, TI_ADFTB1.ADF_F2, TI_ADFTB1.ADF_F3, TI_ADFTB1.ADF_F4, TI_ADFTB1.ADF_F5, TI_ADFTB1.ADF_F6, 
    			TI_ADFTB1.ADF_F7, TI_ADFTB1.ADF_F8, TI_ADFTB1.ADF_F9, TI_ADFTB1.ADF_F10
    		
    		LEFT OUTER JOIN TI_ADFTB1_#INDEX_SCOPE_TAG#_#LANGUAGE_TAG# TI_ADFTB1 ON (CATENTRY.CATENTRY_ID=TI_ADFTB1.CATENTRY_ID)
    	<field column="FULLIMAGE" name="fullImage" />
            <field column="parentCatgroup_id_path" splitBy=";" sourceColName="APCATPATH"/>
            <field column="parentCatentry_id" splitBy=";" sourceColName="CATENTRY_PARENT"/>
            <field column="productset_id" splitBy=";" sourceColName="PRODUCTSET"/>
            <field column="PRICE_GBP" name="price_GBP"/>
            <field column="cas_f30" splitBy=";" sourceColName="CAS_F30ATTR"/>
            <field column="ads_f30" splitBy=";" sourceColName="ADS_F30ATTR"/>
            <field column="adf_f10" splitBy=";" sourceColName="ADF_F10"/>
       <!-- Product end -->
    	<!-- Bundle start -->
    	STORECENT.STOREENT_ID,
    	TI_APGROUP.CATPATHS APCATPATH,
    	TI_CAFTB1.CAF_F1, TI_CAFTB1.CAF_F2, TI_CAFTB1.CAF_F3, TI_CAFTB1.CAF_F4, TI_CAFTB1.CAF_F5, TI_CAFTB1.CAF_F6, TI_CAFTB1.CAF_F7, 
    		TI_CAFTB1.CAF_F8, TI_CAFTB1.CAF_F9, TI_CAFTB1.CAF_F10,
    	TI_ADFTB1.ADF_F1, TI_ADFTB1.ADF_F2, TI_ADFTB1.ADF_F3, TI_ADFTB1.ADF_F4, TI_ADFTB1.ADF_F5, TI_ADFTB1.ADF_F6, TI_ADFTB1.ADF_F7, 
    		TI_ADFTB1.ADF_F8, TI_ADFTB1.ADF_F9, TI_ADFTB1.ADF_F10
    	FROM CATENTRY
    		LEFT OUTER JOIN TI_ADFTB1_#INDEX_SCOPE_TAG#_#LANGUAGE_TAG# TI_ADFTB1 ON (CATENTRY.CATENTRY_ID=TI_ADFTB1.CATENTRY_ID)
    		STORECENT.STOREENT_ID,
    		TI_APGROUP.CATPATHS APCATPATH,
    		TI_CAFTB1.CAF_F1, TI_CAFTB1.CAF_F2, TI_CAFTB1.CAF_F3, TI_CAFTB1.CAF_F4, TI_CAFTB1.CAF_F5, TI_CAFTB1.CAF_F6, TI_CAFTB1.CAF_F7, 
    			TI_CAFTB1.CAF_F8, TI_CAFTB1.CAF_F9, TI_CAFTB1.CAF_F10,
    		TI_ADFTB1.ADF_F1, TI_ADFTB1.ADF_F2, TI_ADFTB1.ADF_F3, TI_ADFTB1.ADF_F4, TI_ADFTB1.ADF_F5, TI_ADFTB1.ADF_F6, TI_ADFTB1.ADF_F7, 
    			TI_ADFTB1.ADF_F8, TI_ADFTB1.ADF_F9, TI_ADFTB1.ADF_F10
    
                  FROM CATENTRY
    		LEFT OUTER JOIN TI_ADFTB1_#INDEX_SCOPE_TAG#_#LANGUAGE_TAG# TI_ADFTB1 ON (CATENTRY.CATENTRY_ID=TI_ADFTB1.CATENTRY_ID)
            <field column="FULLIMAGE" name="fullImage" />
            <field column="parentCatgroup_id_path" splitBy=";" sourceColName="APCATPATH"/>
            <field column="parentCatentry_id" splitBy=";" sourceColName="CATENTRY_PARENT"/>
            <field column="productset_id" splitBy=";" sourceColName="PRODUCTSET"/>
            <field column="PRICE_GBP" name="price_GBP"/>
            <field column="cas_f30" splitBy=";" sourceColName="CAS_F30ATTR"/>
            <field column="ads_f30" splitBy=";" sourceColName="ADS_F30ATTR"/>
            <field column="adf_f10" splitBy=";" sourceColName="ADF_F10"/>
    
      <!-- Bundle end -->
    	STORECENT.STOREENT_ID,
    	TI_APGROUP.CATPATHS APCATPATH,
    	TI_CAFTB1.CAF_F1, TI_CAFTB1.CAF_F2, TI_CAFTB1.CAF_F3, TI_CAFTB1.CAF_F4, TI_CAFTB1.CAF_F5, TI_CAFTB1.CAF_F6, TI_CAFTB1.CAF_F7, 
    		TI_CAFTB1.CAF_F8, TI_CAFTB1.CAF_F9, TI_CAFTB1.CAF_F10,
    		TI_ADFTB1.ADF_F1, TI_ADFTB1.ADF_F2, TI_ADFTB1.ADF_F3, TI_ADFTB1.ADF_F4, TI_ADFTB1.ADF_F5, TI_ADFTB1.ADF_F6, TI_ADFTB1.ADF_F7, 
    			TI_ADFTB1.ADF_F8, TI_ADFTB1.ADF_F9, TI_ADFTB1.ADF_F10
    
    		FROM CATENTRY
                  LEFT OUTER JOIN TI_ADFTB1_#INDEX_SCOPE_TAG#_#LANGUAGE_TAG# TI_ADFTB1 ON (CATENTRY.CATENTRY_ID=TI_ADFTB1.CATENTRY_ID)
    		STORECENT.STOREENT_ID,
    		TI_APGROUP.CATPATHS APCATPATH,
    		TI_CAFTB1.CAF_F1, TI_CAFTB1.CAF_F2, TI_CAFTB1.CAF_F3, TI_CAFTB1.CAF_F4, TI_CAFTB1.CAF_F5, TI_CAFTB1.CAF_F6, TI_CAFTB1.CAF_F7, 
    			TI_CAFTB1.CAF_F8, TI_CAFTB1.CAF_F9, TI_CAFTB1.CAF_F10,
    		TI_ADFTB1.ADF_F1, TI_ADFTB1.ADF_F2, TI_ADFTB1.ADF_F3, TI_ADFTB1.ADF_F4, TI_ADFTB1.ADF_F5, TI_ADFTB1.ADF_F6, TI_ADFTB1.ADF_F7, 
    			TI_ADFTB1.ADF_F8, TI_ADFTB1.ADF_F9, TI_ADFTB1.ADF_F10
    		FROM CATENTRY
    		LEFT OUTER JOIN TI_ADFTB1_#INDEX_SCOPE_TAG#_#LANGUAGE_TAG# TI_ADFTB1 ON (CATENTRY.CATENTRY_ID=TI_ADFTB1.CATENTRY_ID)
            <field column="FULLIMAGE" name="fullImage" />
            <field column="parentCatgroup_id_path" splitBy=";" sourceColName="APCATPATH"/>
            <field column="parentCatentry_id" splitBy=";" sourceColName="CATENTRY_PARENT"/>
            <field column="productset_id" splitBy=";" sourceColName="PRODUCTSET"/>
            <field column="PRICE_GBP" name="price_GBP"/>
            <field column="cas_f30" splitBy=";" sourceColName="CAS_F30ATTR"/>
            <field column="ads_f30" splitBy=";" sourceColName="ADS_F30ATTR"/>
            <field column="adf_f10" splitBy=";" sourceColName="ADF_F10"/>
      <!-- Others start -->
            STORECENT.STOREENT_ID,
    	TI_APGROUP.CATPATHS APCATPATH,
    	TI_ADFTB1.ADF_F1, TI_ADFTB1.ADF_F2, TI_ADFTB1.ADF_F3, TI_ADFTB1.ADF_F4, TI_ADFTB1.ADF_F5, TI_ADFTB1.ADF_F6, TI_ADFTB1.ADF_F7, 
    		TI_ADFTB1.ADF_F8, TI_ADFTB1.ADF_F9, TI_ADFTB1.ADF_F10
    	FROM CATENTRY
    	LEFT OUTER JOIN TI_ADFTB1_#INDEX_SCOPE_TAG#_#LANGUAGE_TAG# TI_ADFTB1 ON (CATENTRY.CATENTRY_ID=TI_ADFTB1.CATENTRY_ID)
    
    	STORECENT.STOREENT_ID,
    	TI_APGROUP.CATPATHS APCATPATH,
    	TI_ADFTB1.ADF_F1, TI_ADFTB1.ADF_F2, TI_ADFTB1.ADF_F3, TI_ADFTB1.ADF_F4, TI_ADFTB1.ADF_F5, TI_ADFTB1.ADF_F6, TI_ADFTB1.ADF_F7, 
    		TI_ADFTB1.ADF_F8, TI_ADFTB1.ADF_F9, TI_ADFTB1.ADF_F10
    	ROM CATENTRY
    		LEFT OUTER JOIN TI_ADFTB1_#INDEX_SCOPE_TAG#_#LANGUAGE_TAG# TI_ADFTB1 ON (CATENTRY.CATENTRY_ID=TI_ADFTB1.CATENTRY_ID)
            <field column="FULLIMAGE" name="fullImage" />
            <field column="PUBLISHED" name="published" />
            <field column="parentCatgroup_id_path" splitBy=";" sourceColName="APCATPATH"/>
            <field column="parentCatentry_id" splitBy=";" sourceColName="CATENTRY_PARENT"/>
            <field column="productset_id" splitBy=";" sourceColName="PRODUCTSET"/>
            <field column="PRICE_GBP" name="price_GBP"/>
            <field column="cas_f30" splitBy=";" sourceColName="CAS_F30ATTR"/>
            <field column="ads_f30" splitBy=";" sourceColName="ADS_F30ATTR"/>
            <field column="adf_f10" splitBy=";" sourceColName="ADF_F10"/>
       <!-- Others end -->
  8. Go to the solrhome/MC_catalogId/database directory and open the wc-dataimport-preprocess-parent-catgroup.xml file.
  9. Enable the customizations in the wc-dataimport-preprocess-parent-catgroup.xml file:
    <_config:property name="indexNavigationPath" value="true"/>
  10. Recreate the search directory structure.