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, or select.

  • 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 whitespace

  • Each searchTerm string has the following form

    • Form: [+|-][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 to startsWith.

      • 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

red

Search all fields for red

+red

Search all fields for excluding red

-red

Search all fields for red or green

red green

Search all fields for red and green

+red +green

Search all fields for (red or green) and blue

red green +blue

Search all fields for exact match “dark red” and green

“dark red” +green

Search “door” field for exact match “dark red” and all fields for green

door:”dark red” +green

Search all fields for dark or red or exact match blue

dark red “blue”

Search all fields for exact match “dark red” or exact match “dark green”

“dark red” “dark green”

Search “door” for red or “hood” for green

door:red hood:green

Search “front door” field for “dark red” and field “hood” that starts with “blue”

“front door”: “dark red” +hood:blue*