Question

Elastic Search alternative to exposing properties for reporting

Has anyone tried passing report definitions into pxRetrieveSearchData to query against Elastic Search, as opposed to the usual exposing of db columns for reporting? This would be for the purpose of avoiding exposing columns and the potential performance issues once too many columns need exposed to meet customer needs. Just trying to see if I'm in new territory here, or if this 'wheel' has already been created and proven out.

***Edited by Moderator Marissa to add SR Details***

**Moderation Team has archived post**

This post has been archived for educational purposes. Contents and links will no longer be updated. If you have the same/similar question, please write a new post.

Group Tags

Correct Answer
March 15, 2018 - 12:48am

V7 search API (pxRetrieveSearchData) requires class and report definition name as a parameter.

List fields that are defined in report definition are returned in search results and Filters that are defined in report definition are appended to search filters.

BTW, it only works with List report(Summary/rank/etc is not supported)

Also in customer's case, they will have to create or update data transform/data instance pySearchModel to include properties that they want to retrieve in search results(retrieval of standard properties is by default supported). Any changes to pySearchModel requires full re-indexing of given class.

Last but not the least assuming customer has work class, indexing should be enabled on work class for search to work.

Regards

Comments

Keep up to date on this post and subscribe to comments

Pega
March 15, 2018 - 12:48am

V7 search API (pxRetrieveSearchData) requires class and report definition name as a parameter.

List fields that are defined in report definition are returned in search results and Filters that are defined in report definition are appended to search filters.

BTW, it only works with List report(Summary/rank/etc is not supported)

Also in customer's case, they will have to create or update data transform/data instance pySearchModel to include properties that they want to retrieve in search results(retrieval of standard properties is by default supported). Any changes to pySearchModel requires full re-indexing of given class.

Last but not the least assuming customer has work class, indexing should be enabled on work class for search to work.

Regards

March 19, 2018 - 2:32pm
Response to guptg

Does it work for external table mapping data class and RD?

March 15, 2018 - 1:44am

Hi,

Elastic search/Lucene Search is in the file system of the server. Below are the important steps to be considered, while implementing the solution using Elastic search

- Custom search properties rule form need to be configured for the respective work class, with all required properties to be filtered on.

-  Create the report definition with all required properties to be returned and called using the "pxRetrieveSearchData" activity

- As Elastic search is on file system index file and flat structured, Query filters in the report definition cannot use embedded page list.

Thanks

Sandeep P V

April 3, 2018 - 7:37am

Thanks for the helpful replies. It appears this can be a solution as long as the data is not in an embedded page list.