The Global Search Service is created for integration of the ElasticSearch engine with the Creatio.
Use the global search service to quickly search data in the main Creatio application by entering a search query in the search string. Creatio always searches in all sections (including custom sections).
Global Search Service basics
The search service implements recording and transport functions by doing the following:
- Subscribes clients by creating an index in ElasticSearch and saves the connection between the index and the application.
- Disconnects clients by removing their index in ElasticSearch.
- Participates in the indexing process by retrieving data from the application database (DB).
The Global Search Service has the following distinguishing features:
- The records are searched by their text and lookup fields as well as the Addresses, Communication options, and Banking details details.
- Files and links on the Attachments and notes tab of the record page can be found by their name or description.
- Search requests are processed taking into account common typos and morphology of different word forms in English (other languages are not currently supported). The search query is case-insensitive.
- The search results are ranked by relevance both in the actual results list and with any configured filters. For example, if the search is performed from a section, the records of this section are displayed at the beginning of the results list.
- If a user does not have permissions for a specific object column, such a column is not displayed on the page of global search results.
Use the following system settings to set up global search parameters:
- Global search default entity weight and Global search default primary column weight – to set up the rules for displaying search results.
- Display search results with partial match – to display search results taking morphology, typos, and fuzzy matches into account.
- Match threshold for displaying in search results (percent) – to manage the number of displayed search results with partial match and increase the chances of finding data for inaccurate search requests.
Global search service operation schema
Global search service consists of the following components:
- RabbitMQ – message broker.
- ElasticSearch – a search engine.
- GS Database Server – database for configuring the global search component.
- GS Caching Server Redis – database used for caching and speed.
- WebAPI – web service for global search component configuration.
- Indexing Service – web service for processing the queries for the targeted indexing of Creatio data.
- GS Scheduler – scheduler for indexing data from Creatio to ElasticSearch.
- GS Worker – component for indexing data from Creatio to ElasticSearch as per the GS Scheduler tasks.
- GS Replay Worker – component for processing indexing results (GS Worker operation results).
- GS Single Worker – component for targeted indexing of business process data in ElasticSearch upon a request from the business process.
- GS Single Replay Worker – component for handling exceptions when processing targeted indexing results (GS Single Worker operation results).
- GS Single Task Worker – component for scheduling tasks for GS Single Worker.
- GS Queried Single Task Worker – component for generating tasks for GS Single Worker.
Global search service scalability
Database clustering enables scaling of the global search service in large projects. Learn more about ElasticSearch clustering in the official documentation.
Global search service compatibility with Creatio products
The global search service is compatible with all Creatio products of version 7.10 and up. Learn more: Global search (user documentation).
Global search service deployment options
You can deploy the global search service on-site and in the cloud.
On-site applications require a preliminary setup of the global search service. To set up the service, you need two servers (physical or virtual machines) that meet specific system requirements. More information about the system requirements for the servers is available in the “Server-side system requirements” article. Both servers must run under Linux with Docker installed. You can find the list of supported Linux distributions in the Docker documentation.
We recommend that you install the most up-to-date version of the global search service.