Using full-text search based in Elasticsearch
The search functionality in Pega Platform provides a convenient way of finding rules, work items, and the documents that you upload to your application. For example, you can search for a specific assignment, and then check the assignment status to determine the remaining workload.
The search functionality also provides the option to check the status of classes that you index.
Pega supports integrating Elasticsearch for your searching functionality differently by deployment type as described in the following table:
Pega Platform search options depend on your deployment type
|Deployment Type||Use the Elasticsearch embedded in the Pega application||Connect to a node running an Elasticsearch docker image||Connect to Elasticsearch using the Pega Search and Reporting Service (SRS)|
|On-premises without Kubernetes||Supported using Elasticsearch version 5.6.9||Supported using Elasticsearch version 5.6.9 using Pega Elasticsearch plugins||Not supported|
|Client-managed cloud||Not supported||Default||Supported on Pega Platform 8.6 and later but optional|
|Pega Cloud Services||Managed by Pega Cloud|
Embedded search functionality
Beginning in Pega Platform 7.1.7 Pega began supporting search using Elasticsearch running as an embedded technology within your Pega deployment using the same JVM. Pega supports embedded search in Pega Platform, which leverages Elasticsearch version 5.6.9.
Pega-provided External search service
Beginning in Pega Infinity 8.2, Pega began support for an externalized Elasticsearch service you run outside of your Pega application deployment. Pega supports the use of this externalized search service in any type of deployment and provides search by the configuration of a REST endpoint pointing to the URL of an external Elasticsearch service.
- In on-premises systems, full-text search may be configured to use an external service running Elasticsearch version 5.6.9 using a Pega-provided Elasticsearch plug-in. For complete configuration details, see Configuring client-server mode for Elasticsearch on Pega Platform.
- Client-managed cloud deployments include an externalized search service you deploy using a Pega-provided Docker image for search that includes the required plug-ins so your Pega applications automatically connect to search. For more information, see the details for Elasticsearch in Understanding the Pega deployment architecture.
Search and Reporting Service (SRS)
Client-managed cloud deployments of Pega Infinity 8.6 and later support a search option delivered through a Pega-provided Search and Reporting Service (SRS). The Pega SRS is not supported in VM deployments. Deployments that use SRS require you to download and then reference the Pega-provided Search and Reporting Service Docker image in your deployment configuration. Your deployment configuration defines your SRS deployment resources as well as your Elasticsearch service and subsequent storage options. Pega supports the following deployment options:
- SRS nodes that run as a cluster within your deployment and by default provision three Elasticsearch nodes using Elasticsearch version 7.1.x cluster each with 30GB of storage.
- SRS nodes that you can connect to your existing Elasticsearch service by accessing the appropriate DNS domain within your enterprise network.
For your SRS configuration options, see BackingServices Helm chart.
Indexed classes for both Embedded Elasticsearch and the Pega-provided External search service
The actions that you can perform on indexes depend on the type of index. The following indexed class types are available:
- Default indexes
- Typeless indexes for Rules-, Data-, and Work- classes.
- Dedicated indexes
- Indexes for specific classes that you can independently configure.
- Custom indexes
- Special purpose indexes that you create and manage outside of Dev Studio.
Indexed classes for SRS
For full-text search using SRS, search continuously propagates changes automatically to your application by using queue processors with a short delay. Indexing your data requires a data model, which consists of the relevant application records and custom search properties. For more information, see Relevant records for rule reuse and Custom search properties.
The actions that you can perform on indexes depend on the type of the index. The following indexed class types are available:
- Rule- class instances
- Indexed rules that are available for search in Dev Studio. All Rule- type classes are indexed in the All Platform Rules class.
- Data- class instances
- Classes that are indexed in the All Platform Data class, or as independent classes.
- Work- class instances
- Classes that are specified in the data model that are indexed independently.
Work item search considerations
Using full-text search reduces the chances of work users entering a duplicate work item, and provides faster access than structured searches. Full-text search can affect system performance during indexing, and can produce many results that require further review and qualification.
If your application uses a composite portal, include the following standard sections: @baseclass.FindWork and @baseclass.SearchField.
- Pega search API
Search functionality in Pega Platform provides the option to find specific information within your application. For example, in a healthcare application, you can search for Jones AND vaccine to retrieve results about all people named Jones who received a vaccine.
- Search and Reporting Service overview
Search and Reporting Service is a feature that provides effective search capabilities by externalizing the full-text search functionalities into an independent microservice. The independence of the Search and Reporting Service improves maintenance because, for example, you can quickly add new service functionalities regardless of the Pega Platform release cycle.
- Checking search index status
Ensure that the data that you index into Search and Reporting Service is free of issues and fully searchable by checking the indexing status. For example, when you make changes in assignments, you can index that data, and then check the index status to ensure that your information is available to searches.
- Enabling the indexing of classes
Decide what data you want to make searchable in your application by permitting the system to index specific class types. For example, on the Search landing page, you can index all Work- classes to make work items searchable.
- Configuring index host nodes
In a multi-node clustered system, the index files required for search can be hosted on one or more nodes. To ensure high reliability and minimize search query downtime, configure at least two, and preferably three nodes as search host nodes.
- Viewing the status of an external search service
If you are using an external Elasticsearch service, you can view the status of the Elasticsearch service endpoint to determine whether it is online or offline. For information about configuring an external Elasticsearch service, see Configuring client-server mode for Elasticsearch on Pega Platform on Pega Community.
- Rebuilding search indexes
You can rebuild default or dedicated search indexes if they become corrupted or if they were accidentally deleted. Custom search indexes cannot be deleted from Dev Studio.
- Integrating with Apache UIMA
This feature requires advanced integration and Java skills. Visit the Apache UIMA site and contact Pegasystems for additional documentation.
- Using virtual reports in Activities
Load the specific report definition into the Clipboard, and modify the virtual instance of that report to maintain the original report unaffected. For example, use an Activity that leverages a report about sales, and then add a specific filter that applies only to the particular client to create a unique virtual report.