While ShareDo's underlying database is the single source of truth, it maintains several search indexes to assist in rapid information querying.
These search indexes are powered by a piece of technology called Elastic Search. It is this technology that powers all:
- Searches within the application
- Lists views
- Radar reporting
When a business event occurs in ShareDo, such as a task being created or completed or a person being updated, this information is first stored in its databases and then projected via queues or streams into the elastic indexes.
In the course of normal processing, there is typically a very small < 20ms lag between these two operations; however, when the system is unloaded or error conditions occur, it is possible that the "single source of truth" database can become out of sync with the search indexes.
Symptoms of the indexes becoming out of date
You will often report symptoms such as the following
- I cannot find a recently created person or organisation when searching for them.
- My lists are empty or incomplete.
Find the search indexes page at Admin > Diagnostics > Search Indexes.
Understanding the Search Diagnostics screen
The Diagnostics/Search Indexes screen shows the overall health of these indexes and provides tools to address any health issues.
During normal processing, the general rule is that all indicators in this screen will be green; in more detail, the screen is broken down into the following sections.
Index States |
This section shows the overall health of your indexes by comparing the counts of the underlying system with the counts in the indexes. A healthy index is at 100%.
|
Search Streams | Operations to update the search indexes are queued. This section gives you an indication of whether the different queues are "keeping up". |
Batch Index Jobs | This section will give you a list of all of the indexing jobs that are running or have run in the system, together with any errors. While errors are rarely seen, this is typically an indicator that indexes should be rebuilt. |
Cluster Health | This section provides you an indicator to the underlying infrastructure that is supporting the search indexes. |
Index Metrics | This section provides a view of the current backlog for each of the different indexes. During normal processing, the backlog should be very low and never growing. |
Microsoft SQL Server transactions are also sent to the indexing tier for projection into additional data stores. The primary read store supported is elastic search. Elastic search is optimised for search and querying. It is the technology that is used to power all of ShareDo’s list and search capabilities.
List and Search within the application are unpinned by elastic search. The indexer service manages the search indexes; this can be seen under Admin > Diagnostics.
Performing remedial actions on the search indexes
In the case of a problem with your search indexes, there are a number of tools at your disposal; these are displayed in the ribbon bar on the screen
Use the index tools with caution, as incorrect use may degrade your users' performance. Where possible, perform these operations outside of business hours or during scheduled maintenance windows.
Each of the indexes provides two options for maintaining their indexes:
- Re-index - consider this option to be similar to fragmenting your PC's disks. Performance will be degraded for some time, but eventually, it will be improved.
- Re-build - consider this option to be similar to re-booting your PC. Search within the application will temporarily "stop", your users will no longer be able to search for items and list views will be incomplete. The indexes will be gradually restored although this may take some time when there are large data volumes present. This option should be used with extreme caution.