Configuring a report definition to run against an Elasticsearch index

To improve report generation performance, you can run report definitions against Elasticsearch indexes instead of using SQL queries directly against the database. Running report definitions against Elasticsearch indexes is disabled by default and does not apply to reports that have features that are not supported by Elasticsearch. If a report query cannot be run against Elasticsearch indexes, Pega Platform automatically uses an SQL query.

Elasticsearch is eventually consistent storage. By enabling report definitions to run against Elasticsearch indexes, you are indicating that strong consistency is not required.

It is recommended that you change the pyContent.pyGetCachedDistinctValues parameter in memory and run the report as a virtual report, that is, use a UI component that supports virtual reports, or pass this parameter to an activity that runs the report. In addition, use a dedicated index because the dedicated index gives you more options for selecting which fields to include in the search results and improves the chances that Elasticsearch is valid storage.

  1. From the Records Explorer, click SysAdmin > Dynamic System Settings.
  2. Locate the reporting/searchdata/enabled setting.
  3. Click the setting.
  4. In the Value field, enter true.
  5. Click Save.
  6. Set the pyContent.pyGetCachedDistinctValues property to true. The method for setting this property varies depending on the method you are using to call the report definition, for example, a virtual report, a data transform, or an activity.