Data type conflicts in dedicated indexes
A data type conflict occurs when a dedicated index contains two fields with the same name that are of different data types. When a data type conflict occurs the status of the dedicated index changes to CONFLICTS FOUND on the Search landing page and in the Custom Search Properties page for that class. Click on Check Conflicts on the Custom Search Properties page to view the properties that are in conflict.
Reasons for data type conflicts
Data type conflicts can happen because dedicated indexes are populated with instances of a class and its descendant classes. For example, if you have a dedicated index for class C, then instances of its inherited classes, C1 and C2, for example, are also included in the same dedicated index unless the inherited classes have separate dedicated indexes. Assuming that C, C1, and C2 are in the same dedicated index, and C1 has a property of name Salary that is an INT data type, and C2 has a property of name Salary with a String data type, a data type conflict occurs and an error message is generated.
The following example scenarios that could cause a data type conflict.
- Class C has a dedicated index and its inheriting classes C1 and C2 have properties that conflict.
- Class C has a dedicated index that contains a property that conflicts with a property in its inheriting class C1 or C2. This scenario can happen when both properties are in different applications.
Data type conflict resolution
Data type conflicts can be fixed in the following ways:
- Disable the data type for the conflicting property in the Custom Search Property rule form. This solution lets you keep the dedicated index for that particular class.
- Create a dedicated index for each class that has a conflicting property.
- Delete the dedicated index for the class. Deleting the dedicated index causes the class to be indexed in the default index ( Work- or Data- ), which is typeless, eliminating any conflicts.
- Rename one of the conflicting properties, change the data type of one of the conflicting properties, or delete one of the conflicting properties.