Enterprise Search Feature Guide (Beta)
Introduction
Socotra Connected Core Enterprise Search brings performant, configurable discovery to your book of business.
Feature Summary
Configurable indexing: you get to decide what entity fields are searchable
“Fuzzy” and “starts with” matching on strings
Advanced search syntax for inclusion, exclusion, and specific field matching
Payments as an additional searchable entity, along with quotes, policies, claims, subclaims, policyholders, and premium reports
Public API endpoint for conducting searches and fetching results programmatically
New “Advanced Search” page in Core UI
Returnable Entities
The full set of returnable entities expands on the existing search, which omits entities such as payments:
Policyholder
Policy
Claim
Payment
Quote
Premium Report
Subclaim matches are returned in a Claim result.
Configuration
Important
Avoid recreate
deployments for enterprise search sandbox tenants. recreate
deployments will halt enterprise search indexing for that tenant until Socotra staff reconnect the tenant to the indexing service. If recreate
is required, please inform your Socotra representative so that we can minimize the time between deployment and enterprise search availability.
Feature Flag
The feature flag property.search.service.enabled
drives Core UI search behavior. When the feature flag is enabled, the application ensures that Core UI uses enterprise search endpoints to service queries, and also makes the new “Advanced Search” page available.
Note
Coordinate with your Socotra representative before enabling this feature flag, since additional infrastructure must be provisioned prior to initial enterprise search enablement for a tenant.
Data Field Configuration
Each of the entities in enterprise search scope - policyholder, policy/quote, claim, subclaim, premium report, and payment - may have custom data fields defined in your tenant config. With enterprise search, you may add a new search property to those fields to indicate that the field should be indexed for searchability.
Important
By default, enterprise search only indexes locators, so configuring fields for indexing will broaden the pool of potential matches and enable the “specific field” search syntax feature (see Search Syntax below).
The application inspects index configuration on every deployment, re-indexing as needed to align with your current search specification.
Search Field Configuration Example
Configuration using JSON
Given a policyholder field set definition (policyholder.dictionary.json
) like this:
[
{
"name": "first_name",
"type": "string"
},
{
"name": "last_name",
"type": "string"
}
]
You can ensure that both first and last name are searchable with the following additions:
[
{
"name": "first_name",
"type": "string",
"search": "text"
},
{
"name": "last_name",
"type": "string",
"search": "text"
}
]
The search property may be added to string, email, or select fields in configuration for policyholder, policy, claim, subclaim, premium report, and payment entities. The value should be text
, regardless of field type. To remove a field from indexing, simply remove the search property or set the search value to none.
Configuration using Config Studio
You may also specify field indexing in Config Studio:
Config Studio will only show the “Search” field elements if the property.search.service.enabled
feature flag is on. Checking “Searchable” for a field in Config Studio maps to “search”: “text”
in the underlying config.json
.
Search Field Configuration Limitations:
The field must be of type
string
,email
, orselect
.For tenants with product versioning enabled, the complete indexing specification is drawn exclusively from the latest configuration deployment, ignoring search configuration in any prior config versions.
Core UI
Enterprise search retains and extends the familiar UI search elements in Core UI. When the enterprise search feature flag is enabled,
All searches from the search bar will use the enterprise search API endpoint.
The results dialog box will have a link to the “Advanced Search” page.
The “Advanced Search” page will allow convenient filtering and pagination via infinite scroll.
As enterprise search beta moves towards General Availability (GA), search result summary cards will be updated to align with the existing search result cards.
Search Syntax
A search request consists of an array of search terms, which can be expressed as a “search string” (see SearchRequest documentation).
Search string syntax provides the ability to write search terms as a single string that can be expressed in a typical search form box.
A search string follows these rules:
A sequence one or more
searchTerm
strings, separated by whitespaceEach
searchTerm
string has the following formForm:
[+|-][fieldName:]string[*]
The
fieldName
slug determines whether the match should be against a specific field name or any field.Term relevance scoring:
If the term is prefixed with a
+
, the term is required for search result relevance.If the term is prefixed with a
-
, the term must be excluded for search result relevance.Absence of
+
or-
before a term is interpreted as a suggestion: the presence of the term increases the relevance score, but does not require that the term be present or absent from a match candidate.
The default match behavior is fuzzy
Appending
*
to the term sets matching tostartsWith
.Enclosing the term in double quotes sets matching to
exact
. Note: as a result, searches with spaces cannot be fuzzy searches.
Search String Examples
Search Intent |
Search String |
---|---|
Search all fields for red |
|
Search all fields for red |
|
Search all fields for excluding red |
|
Search all fields for red or green |
|
Search all fields for red and green |
|
Search all fields for (red or green) and blue |
|
Search all fields for exact match “dark red” and green |
|
Search “door” field for exact match “dark red” and all fields for green |
|
Search all fields for dark or red or exact match blue |
|
Search all fields for exact match “dark red” or exact match “dark green” |
|
Search “door” for red or “hood” for green |
|
Search “front door” field for “dark red” and field “hood” that starts with “blue” |
|