Setting up the search index

Your search index structure can be set up for a specific master catalog. You can deploy your search index structure on your WebSphere Commerce server (embedded configuration or standard configuration). Then, you can configure WebSphere Commerce to use the Solr index by running the search index setup utility. This utility ensures that your index is built successfully by using your WebSphere Commerce master catalog data.

You can reset the search cores on the WebSphere Commerce and Solr machines by running the search index setup utility, after a search index has already been previously setup. For more information and usage, see the action parameter values defined in this task.

Before you begin

  • Ensure that your administrative server is started. For example:
    • If WebSphere Commerce is managed by WebSphere Application Server Deployment manager (dmgr), start the deployment manager and all node agents. Your cluster can also be started.
    • If WebSphere Commerce is not managed by WebSphere Application Server Deployment manager (dmgr), start the WebSphere Application Server server1.
  • Deploying WebSphere Commerce Search That is, ensure that the search Server and WebSphere Commerce instance server are working and running, or the task fails to export the wc-search.xml from the application EAR.
    Note: You can skip setting up the search index structure (setupSearchIndex utility) on the repeater, as you can copy the Solr home directory from the master search server to the repeater. The default Solr home is in the following location: working_dir/search/instance_name/search/solr/home.
  • For IBM i OS operating systemEnsure that the QEJBSVR user profile has WRITE authority for the following directory: QIBM/UserData/CommerceServer80/instances/instance_name/temp
    Example
    
    CHGAUT OBJ('/QIBM/UserData/CommerceServer80/instances/demo/temp') USER(QEJBSVR) DTAAUT(*RWX) SUBTREE(*ALL) SYMLNK(*NO)  
    

Procedure

  1. Complete one of the following tasks:
    • LinuxAIXLog on as a WebSphere Commerce non-root user.
    • For IBM i OS operating systemLog on with a user profile that has *SECOFR authority.
    • WindowsLog on with a user ID that is a member of the Windows Administration group.
  2. Go to the following directory:
    • WC_installdir\components\foundation\subcomponents\search\bin
    • WebSphere Commerce DeveloperWCDE_installdir\components\foundation\subcomponents\search\bin
  3. Run the search index setup utility:
    • WebSphere Commerce DevelopersetupSearchIndex.bat [-action action] [-propFile propFile] -masterCatalogId masterCatalogId [-indextype indextype] [-numOfShards numOfShards] [-solrhome solrhome][-setupWebContent true | false] [-indexsubtype indexsubtype] [-shardTags shardTags]
    • WindowssetupSearchIndex.bat [-action action] [-propFile propFile] -instance instance_name -masterCatalogId masterCatalogId -dbuser db_user -dbuserpwd db_password [-solrhome solrhome] [-indextype indextype] [-numOfShards numOfShards] [-setupWebContent true | false] [-dbauser dba_user] [-dbauserpwd dba_userpwd] [-createAll true | false] [-indexsubtype indexsubtype] [-includeUpdate true | false] [-shardTags shardTags]
    • LinuxAIXFor IBM i OS operating systemsetupSearchIndex.sh -instance instance_name [-action action] [-propFile propFile] -masterCatalogId masterCatalogId -dbuser db_user -dbuserpwd db_password [-solrhome solrhome] [-indextype indextype] [-numOfShards numOfShards] [-setupWebContent true | false] [-dbauser dba_user] [-dbauserpwd dba_userpwd] [-createAll true | false] [-indexsubtype indexsubtype] [-includeUpdate true | false] [-shardTags shardTags]
    Where:
    action
    Optional: Prepares the search index for certain scenarios. Typically, you run the utility without specifying an action, unless you have a need to run a specific action during this task, such as resetting search cores.

    Action names that end with Update as its suffix indicate that the action applies to an existing core, instead of setting up a new core.

    The following actions are supported:
    configWCforReset
    When used with the configSolrCoresReset parameter, resets search cores on the WebSphere Commerce server after a previous search index is already setup. When search cores are reset, all core-related information, such as XML configuration files and database information is deleted. (In previous WebSphere Commerce versions, it was possible to run the search server on remote machines. In such cases the reset command would have to be issued twice, once for the WebSphere Commerce server with the configWCforReset parameter, and once for the remote server using the configSolrCoresReset parameter. In Version 8, you issue both parameters in one action.)
    To reset all Solr cores, set the masterCatalogId parameter to all when using this action.
    Example:
    setupSearchIndex.sh -instance instance_name -masterCatalogId masterCatalogId -dbuser db_user 
    -dbuserpwd db_password -action "configWCforReset,configSolrCoresReset"
    configSolrCoresReset
    Resets search cores on the Solr machine.
    When search cores are reset, all core-related information, such as XML configuration files and database information is deleted. You will need to run the setup utility again to rebuild the index.
    If masterCatalogId is set to all, all Solr cores are reset.
    configWCScheduleforCatalogFilter
    Uses the EXPRESSION table for entitlement. You will need to use this action in the following scenarios:
    • When you want to import catalog filter expressions to the search index in a migrated version 7 environment.
    • If you dataload your catalog filters.
    configWCforSolrUpdate
    Configures WebSphere Commerce to apply updates.
    configSolrCoresUpdate
    Configures Solr to apply updates.
    configHorizontalShards
    Configures indexing for new horizontal shards.
    configHorizontalShardsUpdate
    Configures indexing for existing horizontal shards.
    configParallelShards
    Configures indexing for new parallel shards, which creates horizontal shards, plus one vertical shard.
    configParallelShardsUpdate
    Configures indexing for existing parallel shards.
    configShardsReset
    Deletes all existing shards.
    The following actions support the managed configuration:
    configSolrCoresAdv
    Sets up the advanced file structure for the type that is specified in the propFile property file.
    configSolrCoresAdvUpdate
    Updates an existing advanced file structure for the type that is specified in the propFile property file. This action is used to apply features that are provided by interim fixes.
    configSolrCoresAdvReset
    Resets the advanced file structure for the specified master catalog ID and the type that is specified in the propFile property file.
    configWCforSolrAdv
    Updates the remote database based on the remote database information that is provided in the propFile property file.
    configWCforSolrAdvLocal
    Updates the local database based on the local database information that is provided in the propFile property file.
    configWCforManagedPreprocess
    Allows Management Center Store preview to work in a clustered environment where all machines that have different preprocess directories.
    propFile
    The full path to the loading.properties input properties file, when you are working with a clustered environment that uses the managed configuration. For more information, see Setting up the WebSphere Commerce Search index structure for a specific master catalog in the managed configuration.
    masterCatalogId
    The ID of the master catalog (for example, 10101) to set up the search index. Or, indicate all to set up the search index for all master catalogs.
    If you do not know the master catalog ID, run the following SQL for your starter store:
    SQL: select * from catalog where IDENTIFIER='STORE_IDENTIFIER'
    
    To find the master catalog ID for an Extended Site store:
    1. Find the store ID:
      select * from storeent where IDENTIFIER='STORE_IDENTIFIER'
      
    2. Use the storeent_id as the store_id in the following SQL to find the catalog asset store ID of this Extended Site store:
      
      select * from storerel where store_id=XXXXXX and streltyp_id=-4 and relatedstore_id not in (XXXXXX)
      
      Where XXXXXX is the storeent_id.
    3. Get the master catalog ID:
      
      select * from storecat where storeent_id=YYYYYY and mastercatalog='1'
      
      Where YYYYYY is the relatedstore_id.
    dbuser

    DB2The name of the user that is connecting to the database.

    OracleThe user ID connecting to the database.

    dbuserpwd
    The password for the user that is connecting to the database.
    solrhome
    Optional: The location of the Solr home directory path that contains the index data of Solr. The value must be an absolute path.
    Default locations:
    • WebSphere Commerce DeveloperWCDE_installdir/search/solr/home
    • LinuxAIXWindowsWC_installdir/instances/instance_name/search/solr/home
    • For IBM i OS operating systemWC_instance_root/search/solr/home
    indextype
    Optional: Indicates the search engine index to set up. Valid values:
    CatalogEntry
    Sets up the index for catalog entries in the master catalog.
    CatalogGroup
    Sets up the index for categories in the master catalog.
    If you do not use the indextype parameter, both the CatalogEntry and CatalogGroup indexes are built by default.
    setupWebContent
    Optional: A flag to indicate whether to prepare the basepath and storeid for building the site content index. If false, the basepath and storeid are not added to the config column in the SRCHCONFEXT table. The default value is true.
    Note: Exceptions might occur if your site contains many extended sites and you run setupWebContent. To avoid this issue, enable autoIndex within the droidConfig.xml file.
    dbauser
    The name of the DBA user. This parameter is required with the dbauserpwd parameter to create the workspace indexes.
    dbauserpwd
    The password of the DBA user. This parameter is required with the dbauser parameter to create the workspace indexes.
    createAll
    Indicates whether to create cores for all available workspaces, including non-allocated workspaces. The default value is false, where cores are only created for allocated workspaces.
    indexsubtype
    Optional: Indicates the search engine index subtypes to set up. Valid values:
    Inventory
    Sets up the index for inventory data.
    The inventory index supports only stores that use the non-ATP inventory system.
    Price
    Sets up a subindex for price data to be used with Index Load, instead of storing it in the catalog entry core.
    includeUpdate
    Indicates whether the utility applies optional features that are provided by interim fixes.
    For example, features that exist in the following directories:
    • catalog-update
    • template-update

    The default value is false.

    numOfShards
    The number of sharding cores you want to prepare.
    shardTags
    Optional: Creates the specified shard tags.
    For example, passing in -shardTags X,Y,Z creates the following shards: Shard-X, Shard-Y, and Shard-Z.
    Note: The specified number of shard tags must match the specified number of shards. If not specified, a letter is used from A to Z. Therefore, numOfShards is up to a maximum of 26.
  4. Ensure that the utility runs successfully; or review the log file, WC_installdir/components/foundation/subcomponents/search/config/logging.properties.
    You can get more logging information by updating the logging level from INFO to FINEST:
    
    # Default global logging level, INFO
    com.ibm.commerce.level=FINEST
    
    For more information about the log file, and to enable more logging details, see Enabling tracing and logging for WebSphere Commerce Search.
  5. Restart the WebSphere Commerce Search server.

What to do next

After you set up the search index structure for a specific master catalog, you must preprocess the search index data.