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
- 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.
- If the
Case Insensitive Data Loaderagent 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 toMIXEDorDISABLED.Note: By default, the case-insensitivity search is enabled. - Disable the cache for the entity for which you want to run the
Case Insensitive Data Loaderagent.Note: In addition to disabling the cache, you must turn off audits for that particular entity. - Run the
Case Insensitive Data Loaderagent to populate data in shadow columns.Note: If you skipped step 2, skip this step. - Set the value of the CaseInsensitiveSearch.Mode property to
ENABLEDin the customer_overrides.properties file.Note: If you disabled audits in step 3, now enable them. - Enable the cache for the entity or column for which the
Case-Insensitive Data Loaderagent 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.