Index Persistence

Each Search Service has an associated index that is queried during each search. This index is generated from the staging database tables when the Search Server initializes. A substantial amount of time may be required to read all the search service data from the staging database tables and subsequently to generate the relevant indices for this data.

The Generic Search Server provides the means to persist the current index on the database so as to improve the startup time. When index persistence is enabled, and before the staging tables are interrogated, the persisted index is loaded if available. If it is not available, all data is read from the staging tables and startup will be slower.

The persisted index has a timestamp associated with it and this is stored in the appropriate Search Service table for that index. This timestamp indicates the time that RAM index was last persisted to disk. Knowing this time enables the Generic Search Server to retrieve any new or modified Search Service data from the staging tables. The persisted index and the new/modified data from the staging tables provide for a complete in-memory index ready for searching. Time is saved by reducing the access to the staging tables and the associated processing during index construction.

Persisted index data is stored in BLOB format, therefore performance of reading and writing a large index from and to the database is optimal.