Enabling case-insensitive searches

You can enable search operations case-insensitive by enabling case-insensitive searches for the applicable entity or column. To achieve this, add the CaseInsensitiveSearch attribute in the applicable entity XML file.

Procedure

  1. Edit the required Entity XML to include the CaseInsensitiveSearch=Y attribute.

    Include the ShadowColumnName shadow column attribute in the Entity XML, and specify a name for the shadow column. If this is left blank, the system auto generates one. If you are indexing the shadow column, you must specify a shadow column name. A shadow column is then generated, which is linked to the original column that is marked as case-insensitive.

  2. If the Case Insensitive Data Loader agent is run in a production environment, specify the configuration mode for the entity or column in the CaseInsensitiveSearch.Mode property of the customer_overrides.properties file. Set the value of the CaseInsensitiveSearch.Mode property to MIXED or DISABLED.
    Note: By default, the case-insensitivity search is enabled.
  3. Disable the cache for the entity for which you want to run the Case Insensitive Data Loader agent.
    Note: In addition to disabling the cache, you must turn off audits for that particular entity.
  4. Run the Case Insensitive Data Loader agent to populate data in shadow columns.
    Note: If you skipped step 2, skip this step.
  5. Set the value of the CaseInsensitiveSearch.Mode property to ENABLED in the customer_overrides.properties file.
    Note: If you disabled audits in step 3, now enable them.
  6. Enable the cache for the entity or column for which the Case-Insensitive Data Loader agent was run in Step 3.
    The following APIs support case-insensitive searches for system-defined columns:
    • getOrderList
    • getItemListForOrdering
    • getExceptionListForOrder
    • getCustomerList
    • getPersonInfoList

      By default, the getPersonInfoList API uses a deprecated approach to implement the case-insensitive searches. To enable the getPersonInfoList API to use shadow columns for case-insensitive searches, in the customer_overrides.properties file, set yfs.api.getPersonInfoList.UseShadowCol=Y.

    For custom columns that are extended, the case-insensitive searches work only if the normal search works for those columns.
    Note:
    • This feature is applicable only for searches that use the application-generated XAPIs. Searches that use custom queries are not case-insensitive.
    • Case-insensitive searches can be enabled only for text data type, which is Char and Varchar columns.
    • Use of complex query along with case-insensitive searches for a column is not supported.