Indexing Refactor Strategy
Indexing is non-performing and has some inconsistency problems.
A solution was developed that addresses the main issues, and involves the creation of a separate solr core for relationships (the resource maps). Initially, the solution will create the separate core as a behind the scenes reference for the main search index. Relationships (resource_map, documents, isDocumentedBy) will still be copied into the main search record.
Additionally, archived objects will not be removed from the index, but the field archived will be added to the schema.
The new logic for processing resource maps and archiving objects should remove many of the inefficient checks that cause records to be reindexed.
The main phases for development will be:
- refactor out the custom solr client for use of the standard org.apache.solrj-client.
- migrate the schema to include archived field & introduce relationships core. Refactor the resourcemap subprocessor to use it, and trigger relationship tasks.
- refactor the delete subprocessor (for archived records) & add the search handler.