Solution Overview
Enghouse Interactive Quality Management Suite (QMS) integrates with Meilisearch to provide licensed installations with full text search capabilities for recorded text-based medias. Enabling the full text search feature indexes text-based recorded media, including chats, email, UC messages and call transcriptions, in near real-time and makes these available for search via the QMS Client web application. The feature interfaces with a Meilisearch installation via its HTTP API to index and search recorded artifacts. QMS documents indexed to Meilisearch aren’t stored in their entirety, but are linked to QMS stored media via a common key, allowing a full text search to turn up the original recorded media without duplicating the resources required to store the document. When a recording is removed from QMS, its corresponding document is also removed from Meilisearch.
What is Meilisearch?
Meilisearch is an open source search engine, written in Rust. Its major features include full-text search, typo tolerance, faceted search, and near real-time indexing. The Community Edition used by QMS is licensed under the MIT license.
Meilisearch runs as a single, self-contained instance. A Meilisearch instance organizes documents into "indexes." QMS creates one index per tenant within the Meilisearch instance it’s attached to (named IDX_<tenantId>), so that a request scoped to one tenant’s index can never return another tenant’s data. Further information on the installation, administration, and operation of Meilisearch can be found here: https://www.meilisearch.com/docs.
Because there’s only one Meilisearch instance per installation, all tenants configured to use full text search share that same instance, each with its own isolated index. Access to the instance and its indexes is controlled with a single master key, generated when Meilisearch is installed.
High Level Architecture
The QMS Data Service and any QMS Media Processing Services communicate directly with Meilisearch over HTTP. The Media Processing Service indexes documents to Meilisearch as recordings are finalized in QMS. The QMS Data Service doesn’t take part in this real-time indexing, but it does pose search queries to Meilisearch on behalf of the QMS Client web application, and drives the full tenant reindex feature - during a reindex, the Data Service builds and sends documents itself for the data sources it manages directly, and hands off the rest to the Media Processing Service. See QMS Reindex for details.
Meilisearch can be installed on the same host as the QMS Data Service, or on a separate, remote machine - either way it remains a single instance, with one index per tenant. Any host running a QMS Data Service or Media Processing Service must be able to reach the Meilisearch host over the network.