Introduced in Feature Pack 2

Example: Indexing additional fields for attributes

In this example, WebSphere Commerce search is customized to index 10 more attribute string fields.

Procedure

  1. Configure the search preprocessor.
    1. Go to the following directory:
      • WebSphere Commerce DeveloperWCDE_installdir/search/pre-processConfig/MC_masterCatalogId/development_db
      • SolarisLinuxAIXWindowsWC_installdir/instances/instance_name/search/pre-processConfig/MC_masterCatalogId/target_db
    2. Create a custom preprocess configuration file and call it wc-dataimport-preprocess-custom-clsattribute.xml.
      Note:
      • Your table name must start with an X to avoid conflict with the default WebSphere Commerce tables.
      • Do not change existing preprocess configuration files. Newly created custom preprocess configuration files must start with wc-dataimport-preprocess and end in .xml for example, wc-dataimport-preprocess-XXXXX.xml, wc-dataimport-preprocess-custom-clsattribute.xml.
      Example of the file, which adds 10 extra string fields
      
      <?xml version="1.0" encoding="UTF-8"?>
      
      <_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.ClassicDynamicAttributeDataPreProcessor" masterCatalogId="10101" batchSize="500">
          <_config:table definition="CREATE TABLE XI_CASTB1_0_#lang_tag# (CATENTRY_ID BIGINT NOT NULL, XF_CAS_F1 CLOB, XF_CAS_F2 CLOB, XF_CAS_F3 CLOB, XF_CAS_F4 CLOB, XF_CAS_F5 CLOB, 
          								XF_CAS_F6 CLOB, XF_CAS_F7 CLOB, XF_CAS_F8 CLOB, XF_CAS_F9 CLOB, XF_CAS_F10 CLOB, PRIMARY KEY (CATENTRY_ID))" name="XI_CASTB1_0_#lang_tag#" />
          <_config:query sql="(select v.catentry_id CATENTRY_ID, a.name ATTRIBUTE_NAME, rtrim(stringvalue) ATTRIBUTE_VALUE from attrvalue v, attribute a, TI_CATENTRY_0 c 
      	    where v.catentry_id=c.CATENTRY_ID and v.language_id=?language_id? and v.attribute_id=a.attribute_id and v.language_id=a.language_id and a.name IN (?attr_name?)) 
      		UNION 
      		(select rel.catentry_id_parent CATENTRY_ID, a.name ATTRIBUTE_NAME, rtrim(stringvalue) ATTRIBUTE_VALUE 
      			from attrvalue v, attribute a, TI_CATENTRY_0 c, CATENTREL rel
      			where c.catentry_id=rel.catentry_id_parent and c.catenttype_id='ProductBean' and rel.catreltype_id='PRODUCT_ITEM' and
            	rel.catentry_id_child=v.catentry_id and
            	v.language_id=?language_id? and v.attribute_id=a.attribute_id and v.language_id=a.language_id and a.name IN (?attr_name?)) 
      		order by catentry_id, ATTRIBUTE_NAME"/>
           <_config:mapping>
            <_config:key queryColumn="CATENTRY_ID" tableColumn="CATENTRY_ID"/>
            <_config:column-mapping>
              <_config:row-column-mapping>
              	<_config:row-column-name attrNameColName="ATTRIBUTE_NAME" attrValueColName="ATTRIBUTE_VALUE"/>
              </_config:row-column-mapping>
            </_config:column-mapping>
          </_config:mapping>
        </_config:data-processing-config>  
      
      </_config:DIHPreProcessConfig>
      
  2. Add new fields into the CLSATTRSRCHCONF table:
    The newly added columns and table name prefix from the previous section must be added into the CLSATTRSRCHCONF table.
    
    insert into clsattrsrchconf values (201, 10101, 'XF_CAS_F1', null, -1, 'STRING', 'XI_CASTB1_0_', null, 1);
    insert into clsattrsrchconf values (202, 10101, 'XF_CAS_F2', null, -1, 'STRING', 'XI_CASTB1_0_', null, 1);
    insert into clsattrsrchconf values (203, 10101, 'XF_CAS_F3', null, -1, 'STRING', 'XI_CASTB1_0_', null, 1);
    insert into clsattrsrchconf values (204, 10101, 'XF_CAS_F4', null, -1, 'STRING', 'XI_CASTB1_0_', null, 1);
    insert into clsattrsrchconf values (205, 10101, 'XF_CAS_F5', null, -1, 'STRING', 'XI_CASTB1_0_', null, 1);
    insert into clsattrsrchconf values (206, 10101, 'XF_CAS_F6', null, -1, 'STRING', 'XI_CASTB1_0_', null, 1);
    insert into clsattrsrchconf values (207, 10101, 'XF_CAS_F7', null, -1, 'STRING', 'XI_CASTB1_0_', null, 1);
    insert into clsattrsrchconf values (208, 10101, 'XF_CAS_F8', null, -1, 'STRING', 'XI_CASTB1_0_', null, 1);
    insert into clsattrsrchconf values (209, 10101, 'XF_CAS_F9', null, -1, 'STRING', 'XI_CASTB1_0_', null, 1);
    insert into clsattrsrchconf values (210, 10101, 'XF_CAS_F10', null, -1, 'STRING', 'XI_CASTB1_0_', null, 1);
    
  3. Populate the CLSATTRSRCHCONF table:
    
    update clsattrsrchconf set attrname='SIZE' where CLSATTRSRCHCONF_ID = 201;
    update clsattrsrchconf set attrname='COLOR' where CLSATTRSRCHCONF_ID = 202;
    

    This sample indexes size and color attributes based on data that is inserted in the previous step.

  4. Populate the SRCHATTR and SRCHATTRPROP tables.
    
    INSERT INTO srchattr (SRCHATTR_ID, INDEXSCOPE, INDEXTYPE, IDENTIFIER, OPTCOUNTER) VALUES (1029, '10101', 'CatalogEntry', '_cat.SIZE', 1);
    INSERT INTO srchattr (SRCHATTR_ID, INDEXSCOPE, INDEXTYPE, IDENTIFIER, OPTCOUNTER) VALUES (1030, '10101', 'CatalogEntry', '_cat.COLOR', 1);
    
    INSERT INTO srchattrprop (SRCHATTR_ID, PROPERTYNAME, PROPERTYVALUE, OPTCOUNTER) VALUES (1029, 'facet', 'xf_cas_f1_ntk_cs', 1);
    INSERT INTO srchattrprop (SRCHATTR_ID, PROPERTYNAME, PROPERTYVALUE, OPTCOUNTER) VALUES (1030, 'facet', 'xf_cas_f2_ntk_cs', 1);
    
    Note: There is a limitation for faceting attributes, where the facet name displayed on storefront is not language-dependent. That is, it displays the content of the IDENTIFIER column of the SRCHATTR table without the prefix. For example, the identifier _cat.SIZE is displayed as SIZE in the storefront for the attribute, regardless of language.
  5. Preprocess the search index data.
    1. Query the XI_CASTB1_0_1 table to confirm that the data is populated.
  6. Configure the Data Import Handler mapping.
    1. Go to the following directory:
      • WebSphere Commerce DeveloperWCDE_installdir/search/solr/home
      • SolarisLinuxAIXWindowsWC_installdir/instances/instance_name/search/solr/home

      This directory contains the Master Catalog folder, in which there are the configurations files for each language. If you have more than one language folders, perform this step for every language.

    2. Open the MC_masterCatalogId/en_US/CatalogEntry/conf/schema.xml file.
    3. Locate <dynamicField name="caf_f*" type="float" indexed="true" stored="true" multiValued="true"/> and add the following snippet in bold.
      
      <!--
         Catentry's classic attributes: map to table: ATTRVALUE, ATTRIBUTE
         -->
         <dynamicField name="cas_f*" type="wc_text" indexed="true" stored="true" multiValued="true"/>
         <dynamicField name="cai_f*" type="int" indexed="true" stored="true" multiValued="true"/>
      	 <dynamicField name="caf_f*" type="float" indexed="true" stored="true" multiValued="true"/>
      
      <!--
         Newly added attribute dictionary attribute.
         -->
         <dynamicField name="xf_cas_f*" type="wc_text" indexed="true" stored="true" multiValued="true"/>
      
         <field name="xf_cas_f1_ntk_cs" type="string" indexed="true" stored="true" multiValued="true"/> 
         <field name="xf_cas_f2_ntk_cs" type="string" indexed="true" stored="true" multiValued="true"/> 
         <field name="xf_cas_f3_ntk_cs" type="string" indexed="true" stored="true" multiValued="true"/> 
         <field name="xf_cas_f4_ntk_cs" type="string" indexed="true" stored="true" multiValued="true"/> 
         <field name="xf_cas_f5_ntk_cs" type="string" indexed="true" stored="true" multiValued="true"/> 
         <field name="xf_cas_f6_ntk_cs" type="string" indexed="true" stored="true" multiValued="true"/> 
         <field name="xf_cas_f7_ntk_cs" type="string" indexed="true" stored="true" multiValued="true"/> 
         <field name="xf_cas_f8_ntk_cs" type="string" indexed="true" stored="true" multiValued="true"/> 
         <field name="xf_cas_f9_ntk_cs" type="string" indexed="true" stored="true" multiValued="true"/> 
         <field name="xf_cas_f10_ntk_cs" type="string" indexed="true" stored="true" multiValued="true"/>
      
    4. Locate <copyField source="adf_f*" dest="defaultSearch"/> and add the following snippet in bold.
      
      <!-- Copy fields for default search field -->
       <copyField source="name" dest="defaultSearch"/>
       <copyField source="shortDescription" dest="defaultSearch"/>
       <copyField source="partNumber_ntk" dest="defaultSearch"/>
       <copyField source="keyword" dest="defaultSearch"/>
       <copyField source="cas_f*" dest="defaultSearch"/>
       <copyField source="cai_f*" dest="defaultSearch"/>
       <copyField source="caf_f*" dest="defaultSearch"/>
       <copyField source="ads_f*" dest="defaultSearch"/>
       <copyField source="adi_f*" dest="defaultSearch"/>
       <copyField source="adf_f*" dest="defaultSearch"/>
      
      <copyField source="xf_cas_f*" dest="defaultSearch"/>
      
    5. Save your changes.
    6. Open the MC_masterCatalogId/en_US/CatalogEntry/conf/wc-data-config.xml file.
    7. Locate <document name="CatalogEntry"> for entity name="Product", name="Bundle" and name="Others", for both the query and deltaImportQuery sections.
    8. Add the following columns and tables in bold to the select SQL:
      
      SELECT CATENTRY.CATENTRY_ID,CATENTRY.MEMBER_ID,CATENTRY.CATENTTYPE_ID,CATENTRY.PARTNUMBER,CATENTRY.MFPARTNUMBER,CATENTRY.MFNAME, CATENTRY.BUYABLE,
      								STORECENT.STOREENT_ID, 
      									CATENTDESC.NAME,CATENTDESC.SHORTDESCRIPTION,CATENTDESC.LONGDESCRIPTION,CATENTDESC.THUMBNAIL,CATENTDESC.FULLIMAGE, CATENTDESC.KEYWORD, CATENTDESC.PUBLISHED,
      									TI_DPGROUP.CATGROUP DPCATGROUP,
      									TI_APGROUP.CATGROUPS APCATGROUP,
      									TI_PRODUCTSET.PRODUCTSET,
      									TI_OFFERPRICE.PRICE_USD, TI_OFFERPRICE.PRICE_EUR, TI_OFFERPRICE.PRICE_CAD, TI_OFFERPRICE.PRICE_CNY,
      									TI_OFFERPRICE.PRICE_JPY, TI_OFFERPRICE.PRICE_KRW, TI_OFFERPRICE.PRICE_BRL, TI_OFFERPRICE.PRICE_TWD,
      									TI_OFFERPRICE.PRICE_PLN, TI_OFFERPRICE.PRICE_PLN, TI_OFFERPRICE.PRICE_RON, TI_OFFERPRICE.PRICE_EGP,
      									TI_OFFERPRICE.PRICE_GBP,
      									TI_DPCATENTRY.CATENTRY_PARENT,
      									TI_CATALOG.CATALOG PARENT_CATALOG_ID,
      									TI_CATGPENREL.SEQUENCE,
      											
      									TI_CASTB1.CAS_F1 CAS_F1ATTR, TI_CASTB1.CAS_F2 CAS_F2ATTR, TI_CASTB1.CAS_F3 CAS_F3ATTR,TI_CASTB1.CAS_F4 CAS_F4ATTR,TI_CASTB1.CAS_F5 CAS_F5ATTR,
      									TI_CASTB1.CAS_F6 CAS_F6ATTR,TI_CASTB1.CAS_F7 CAS_F7ATTR,	TI_CASTB1.CAS_F8 CAS_F8ATTR,TI_CASTB1.CAS_F9 CAS_F9ATTR,TI_CASTB1.CAS_F10 CAS_F10ATTR,
      									TI_CASTB1.CAS_F11 CAS_F11ATTR,TI_CASTB1.CAS_F12 CAS_F12ATTR,TI_CASTB1.CAS_F13 CAS_F13ATTR,TI_CASTB1.CAS_F14 CAS_F14ATTR,TI_CASTB1.CAS_F15 CAS_F15ATTR,
      									TI_CASTB1.CAS_F16 CAS_F16ATTR,TI_CASTB1.CAS_F17 CAS_F17ATTR, TI_CASTB1.CAS_F18 CAS_F18ATTR,TI_CASTB1.CAS_F19 CAS_F19ATTR,TI_CASTB1.CAS_F20 CAS_F20ATTR,
      									TI_CASTB1.CAS_F21 CAS_F21ATTR,TI_CASTB1.CAS_F22 CAS_F22ATTR,TI_CASTB1.CAS_F23 CAS_F23ATTR,TI_CASTB1.CAS_F24 CAS_F24ATTR,TI_CASTB1.CAS_F25  CAS_F21ATTR,
      									TI_CASTB1.CAS_F26  CAS_F26ATTR,TI_CASTB1.CAS_F27  CAS_F27ATTR,TI_CASTB1.CAS_F28  CAS_F28ATTR,TI_CASTB1.CAS_F29  CAS_F29ATTR,TI_CASTB1.CAS_F30  CAS_F30ATTR,
      									TI_CAITB1.CAI_F1,TI_CAITB1.CAI_F2,TI_CAITB1.CAI_F3,	TI_CAITB1.CAI_F4,TI_CAITB1.CAI_F5,TI_CAITB1.CAI_F6,	TI_CAITB1.CAI_F7,TI_CAITB1.CAI_F8,TI_CAITB1.CAI_F9,	TI_CAITB1.CAI_F10,
      									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,
      XI_CASTB1.XF_CAS_F1 XF_CAS_F1ATTR, XI_CASTB1.XF_CAS_F2 XF_CAS_F2ATTR, XI_CASTB1.XF_CAS_F3 XF_CAS_F3ATTR, XI_CASTB1.XF_CAS_F4 XF_CAS_F4ATTR, XI_CASTB1.XF_CAS_F5  XF_CAS_F5ATTR, 
      	XI_CASTB1.XF_CAS_F6 XF_CAS_F6ATTR, XI_CASTB1.XF_CAS_F7 XF_CAS_F7ATTR, XI_CASTB1.XF_CAS_F8 XF_CAS_F8ATTR, XI_CASTB1.XF_CAS_F9 XF_CAS_F9ATTR, XI_CASTB1.XF_CAS_F10 XF_CAS_F10ATTR,
      
      	TI_ADSTB1.ADS_F6 ADS_F6ATTR,TI_ADSTB1.ADS_F7 ADS_F7ATTR,	TI_ADSTB1.ADS_F8 ADS_F8ATTR,TI_ADSTB1.ADS_F9 ADS_F9ATTR,TI_ADSTB1.ADS_F10 ADS_F10ATTR,
      									TI_ADSTB1.ADS_F11 ADS_F11ATTR,TI_ADSTB1.ADS_F12 ADS_F12ATTR,TI_ADSTB1.ADS_F13 ADS_F13ATTR,TI_ADSTB1.ADS_F14 ADS_F14ATTR,TI_ADSTB1.ADS_F15 ADS_F15ATTR,
      									TI_ADSTB1.ADS_F16 ADS_F16ATTR,TI_ADSTB1.ADS_F17 ADS_F17ATTR, TI_ADSTB1.ADS_F18 ADS_F18ATTR,TI_ADSTB1.ADS_F19 ADS_F19ATTR,TI_ADSTB1.ADS_F20 ADS_F20ATTR,
      									TI_ADSTB1.ADS_F21 ADS_F21ATTR,TI_ADSTB1.ADS_F22 ADS_F22ATTR,TI_ADSTB1.ADS_F23 ADS_F23ATTR,TI_ADSTB1.ADS_F24 ADS_F24ATTR,TI_ADSTB1.ADS_F25  ADS_F21ATTR,
      									TI_ADSTB1.ADS_F26  ADS_F26ATTR,TI_ADSTB1.ADS_F27  ADS_F27ATTR,TI_ADSTB1.ADS_F28  ADS_F28ATTR,TI_ADSTB1.ADS_F29  ADS_F29ATTR,TI_ADSTB1.ADS_F30  ADS_F30ATTR,
      									TI_ADITB1.ADI_F1, TI_ADITB1.ADI_F2,	TI_ADITB1.ADI_F3,	TI_ADITB1.ADI_F4, TI_ADITB1.ADI_F5,	TI_ADITB1.ADI_F6,	TI_ADITB1.ADI_F7, TI_ADITB1.ADI_F8,	TI_ADITB1.ADI_F9,	TI_ADITB1.ADI_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
      Append the table join clause in bold:
      
      FROM CATENTRY
      							 		INNER JOIN TI_CATENTRY_0 TI_CATENTRY ON (CATENTRY.CATENTRY_ID=TI_CATENTRY.CATENTRY_ID)
       LEFT OUTER JOIN STORECENT ON (CATENTRY.CATENTRY_ID=STORECENT.CATENTRY_ID)
       LEFT OUTER JOIN CATENTDESC ON (CATENTDESC.CATENTRY_ID=CATENTRY.CATENTRY_ID AND CATENTDESC.LANGUAGE_ID=-1)
       LEFT OUTER JOIN TI_DPGROUP_0 TI_DPGROUP ON (CATENTRY.CATENTRY_ID=TI_DPGROUP.CATENTRY_ID)
       LEFT OUTER JOIN TI_APGROUP_0 TI_APGROUP ON (CATENTRY.CATENTRY_ID=TI_APGROUP.CATENTRY_ID)
       LEFT OUTER JOIN TI_PRODUCTSET_0 TI_PRODUCTSET ON (CATENTRY.CATENTRY_ID=TI_PRODUCTSET.CATENTRY_ID)
       LEFT OUTER JOIN TI_OFFERPRICE_0 TI_OFFERPRICE ON (CATENTRY.CATENTRY_ID=TI_OFFERPRICE.CATENTRY_ID)
       LEFT OUTER JOIN TI_DPCATENTRY_0 TI_DPCATENTRY ON (CATENTRY.CATENTRY_ID=TI_DPCATENTRY.CATENTRY_ID)
       LEFT OUTER JOIN TI_CATALOG_0 TI_CATALOG ON (CATENTRY.CATENTRY_ID=TI_CATALOG.CATENTRY_ID)
       LEFT OUTER JOIN TI_CATGPENREL_0 TI_CATGPENREL ON (CATENTRY.CATENTRY_ID=TI_CATGPENREL.CATENTRY_ID)
      							      
       LEFT OUTER JOIN TI_CASTB1_0_1 TI_CASTB1 ON (CATENTRY.CATENTRY_ID=TI_CASTB1.CATENTRY_ID)
       LEFT OUTER JOIN TI_CAITB1_0_1 TI_CAITB1 ON (CATENTRY.CATENTRY_ID=TI_CAITB1.CATENTRY_ID)
       LEFT OUTER JOIN TI_CAFTB1_0_1 TI_CAFTB1 ON (CATENTRY.CATENTRY_ID=TI_CAFTB1.CATENTRY_ID)
      LEFT OUTER JOIN XI_LISTPRICE_0 XI_LISTPRICE ON (CATENTRY.CATENTRY_ID=XI_LISTPRICE.CATENTRY_ID)
      
      LEFT OUTER JOIN TI_ADSTB1_0_1 TI_ADSTB1 ON (CATENTRY.CATENTRY_ID=TI_ADSTB1.CATENTRY_ID)
       LEFT OUTER JOIN TI_ADITB1_0_1 TI_ADITB1 ON (CATENTRY.CATENTRY_ID=TI_ADITB1.CATENTRY_ID)
       LEFT OUTER JOIN TI_ADFTB1_0_1 TI_ADFTB1 ON (CATENTRY.CATENTRY_ID=TI_ADFTB1.CATENTRY_ID)
      					
      
      Add the field mapping before <field column="cas_f30_ntk_cs" splitBy=";" sourceColName="CAS_F30ATTR"/>:
      
      <field column="cas_f29" splitBy=";" sourceColName="CAS_F29ATTR"/>
      <field column="cas_f29_ntk_cs" splitBy=";" sourceColName="CAS_F29ATTR"/>
      <field column="CAS_F30ATTR"  clob="true"/>
      <field column="cas_f30" splitBy=";" sourceColName="CAS_F30ATTR"/>	
      <field column="cas_f30_ntk_cs" splitBy=";" sourceColName="CAS_F30ATTR"/>	
      <!-- newly added classic attribute field -->
      <field column="XF_CAS_F1ATTR"  clob="true"/>
      <field column="xf_cas_f1" splitBy=";" sourceColName="XF_CAS_F1ATTR"/>
      <field column="xf_cas_f1_ntk_cs" splitBy=";" sourceColName="XF_CAS_F1ATTR"/>
      <field column="XF_CAS_F2ATTR"  clob="true"/>
      <field column="xf_cas_f2" splitBy=";" sourceColName="XF_CAS_F2ATTR"/>
      <field column="xf_cas_f2_ntk_cs" splitBy=";" sourceColName="XF_CAS_F2ATTR"/>
      <field column="XF_CAS_F3ATTR"  clob="true"/>
      <field column="xf_cas_f3" splitBy=";" sourceColName="XF_CAS_F3ATTR"/>
      <field column="xf_cas_f3_ntk_cs" splitBy=";" sourceColName="XF_CAS_F3ATTR"/>
      <field column="XF_CAS_F4ATTR"  clob="true"/>
      <field column="xf_cas_f4" splitBy=";" sourceColName="XF_CAS_F4ATTR"/>
      <field column="xf_cas_f4_ntk_cs" splitBy=";" sourceColName="XF_CAS_F4ATTR"/>
      <field column="XF_CAS_F5ATTR"  clob="true"/>
      <field column="xf_cas_f5" splitBy=";" sourceColName="XF_CAS_F5ATTR"/>
      <field column="xf_cas_f5_ntk_cs" splitBy=";" sourceColName="XF_CAS_F5ATTR"/>
      <field column="XF_CAS_F6ATTR"  clob="true"/>
      <field column="xf_cas_f6" splitBy=";" sourceColName="XF_CAS_F6ATTR"/>
      <field column="xf_cas_f6_ntk_cs" splitBy=";" sourceColName="XF_CAS_F6ATTR"/>
      <field column="XF_CAS_F7ATTR"  clob="true"/>
      <field column="xf_cas_f7" splitBy=";" sourceColName="XF_CAS_F7ATTR"/>
      <field column="xf_cas_f7_ntk_cs" splitBy=";" sourceColName="XF_CAS_F7ATTR"/>
      <field column="XF_CAS_F8ATTR"  clob="true"/>
      <field column="xf_cas_f8" splitBy=";" sourceColName="XF_CAS_F8ATTR"/>
      <field column="xf_cas_f8_ntk_cs" splitBy=";" sourceColName="XF_CAS_F8ATTR"/>
      <field column="XF_CAS_F9ATTR"  clob="true"/>
      <field column="xf_cas_f9" splitBy=";" sourceColName="XF_CAS_F9ATTR"/>
      <field column="xf_cas_f9_ntk_cs" splitBy=";" sourceColName="XF_CAS_F9ATTR"/>
      <field column="XF_CAS_F10ATTR"  clob="true"/>
      <field column="xf_cas_f10" splitBy=";" sourceColName="XF_CAS_F10ATTR"/>																
      
      
    9. Save the changes and close the file.
  7. Restart the WebSphere Commerce search server.
  8. Run the di-buildindex utility.
  9. Verify the data:
    • WebSphere Commerce Developerhttp://localhost/solr/MC_10101_CatalogEntry_en_US/select?q=*:*
    • SolarisLinuxAIXWindowshttp://yoursolrserverhost:3737/solr/MC_10101_CatalogEntry_en_US/select?q=*:*
    Sample
    
    <str name="shortDescription">Your little driver will be so happy in our double-sleeve car tee.</str>
    <int name="storeent_id>10101</int>
    <str name="thumbnail>images/catalog/apparel/apparel_70x70/IMG_0077_e.jpg</str>
    <arr name="xf_cas_f1">
      <str>12 to 18 months</str>
      <str>18 to 24 months</str>
      <str>2T</str>
      <str>3T</str>
      <str>4T</str>
      <str>5T</str>
      <str>6 to 12 months</str>
    </arr>
    <arr name="xf_cas_f1_ntk_cs">
      <str>12 to 18 months</str>
      <str>18 to 24 months</str>
      <str>2T</str>
      <str>3T</str>
      <str>4T</str>
      <str>5T</str>
      <str>6 to 12 months</str>
    </arr>
    <arr name="xf_cas_f2">
      <str>Mousse</str>
      <str>Olive</str>
      <str>Rust</str>
      <str>Tool Shed</str>
    </arr>
    <arr name="xf_cas_f2_ntk_cs">
      <str>Mousse</str>
      <str>Olive</str>
      <str>Rust</str>
      <str>Tool Shed</str>
    </arr>
    </doc>