Details
-
Type: Improvement
-
Status: Done/Fixed
-
Priority: Minor
-
Resolution: Fixed/Completed
-
Affects Version/s: 4.5
-
Fix Version/s: 4.5
-
Component/s: CiviCRM Search
-
Labels:None
Description
(See also: http://wiki.civicrm.org/confluence/display/CRM/Full+Text+Search )
1. Implement a class, CRM_Core_InnoDBIndexer, which can:
1a. Add FTS indices to specific list of tables/columns
1b. Drop all FTS indices
1c. Reindex (ie drop + recreate all indices)
2. Add a setting, "enable_innodb_fts". Changes to the setting should trigger InnoDBIndexer.
3. Expose the setting in the admin UI.
4. Update the FullText search classes:
4a. When "enable_innodb_fts" is false, use the same queries we currently use. The basic conditional in each query should be "col1 LIKE '%query%' OR col2 LIKE '%query%'"
4b. When "enable_innodb_fts" is true, use the same overall query structure, but change basic conditional to "MATCH(col1,col2) AGAINST ('query')"
5. When upgrading, display warnings if "enable_innodb_fts" is active. Sysadmins may need to reindex.