Each search index type (Work-, Data-, and Rule-) stores a document for each class instance of that type. The document includes fields that represent the values of a subset of the properties in the instance. See How class instances are stored in the search index. You can specify additional properties to index by creating a custom search property data instance. Including additional properties in the search index enables you to reference additional properties in Report Definition rules that query the search indexes.
You can specify single value, page list, page group, value list, and value group properties. Properties can be stored in the index in a format that is filterable, that is, you can reference them in Report Definition filters that search the indexes, and/or returnable, that is, you can include them in the results of Report Definition queries that search the indexes as described below.
To use embedded properties in filters and new data instances, the Data Admin System setting indexing/useDataInstances to true. Click Records > SysAdmin > Dynamic System Settings to set this property. In addition, search must be invoked using the pxRetrieveSearchData activity.
You can also specify which properties are available for full-text search. You do this by checking Make this property available for full-text search on the custom search property data instance and checking Full-text search is only performed for specified properties on the Search landing page.
Note: After you make the changes, rebuild the search index for the class on the Search landing page to ensure that all instances reflect the changes.
Multiple filter conditions referencing properties in the same page list or page group are not guaranteed to be satisfied on the same page. The following example illustrates this limitation.
Example: PegaSample has a page list pyProductList that has an embedded pagelist ProductInventoryList that includes pyCountryName.
Assume the following sample data:
.pyID : S-1
.pyProductList(1).pyProductName = “Prod A”
.pyProductList(1).ProductInventoryList(1).pyCountryName = “India”
.pyProductList(1).ProductInventoryList(2).pyCountryName = “United States”
.pyProductList(1).ProductInventoryList(3).pyCountryName = “United Kingdom”
.pyProductList(2).pyProductName = “Prod B”
.pyProductList(2).ProductInventoryList(1).pyCountryName = “Egypt”
.pyProductList(2).ProductInventoryList(2).pyCountryName = “Hong Kong”
.pyProductList(2).ProductInventoryList(3).pyCountryName = “Australia”
S-1 is returned in the results when the following filter is specified in the Report Definition: .pyProductList(1).ProductInventoryList(1).pyCountryName CONTAINS “Hong Kong”
Note that the indexes for the page lists are ignored when applying the filter, and so S-1 matches the filter even though Hong Kong is a value in ProductInventoryList(2), and not ProductInventoryList(1). Filters on values in page lists and page groups function as ANY filters.
You can search for a work object where any of the products has inventory in country “Hong Kong." You cannot search for a work object where product “Prod A” has inventory in “Hong Kong.”
To access custom search data objects, use the Records Explorer and expand the SysAdmin category.
Custom search data instances are referenced in Report Definition rules.
Custom search properties are instances of the Data-CustomProperties-Search class. They belong to the SysAdmin category.