Vertical Searchable Fields | Yext Hitchhikers Platform
What You’ll Learn
In this section, you will learn:
- Searchable Field Types
- Configuring via UI vs. JSON
- Searchable Field Examples and Use Cases
Searchable Field Types
Within each vertical, you will determine which fields can searched on the Search backend. This is what’s called a searchable field.
Searchable fields control which fields are indexed by the Search algorithm in each vertical and therefore how results (think: entities and verticals) are returned to the user. Each entity type that you set up in your Knowledge Graph has both profile and custom fields associated to it. In the Search Configuration, you can set each field as Searchable by configuring it as such and selecting one of the following searchable field types in the below table. We will dive into each type and walk through examples of each one in the following units!
Searchable Field | Description | Common Use Cases (Fields) |
---|---|---|
Text Search | Text Search allows each token of the query to be searched within the fields you specify. This is best for short text fields that might contain unstructured or varied data. | Name, Keywords |
NLP Filter | NLP Filter enables each term in the search query to be parsed with Natural Language Processing (NLP) and used as a filter. This is best for structured enum/option fields where there are a finite number of variations across entities. | builtin.location, builtin.entityType, builtin.hours, linkedEntity.name, Department, Category, Vertical, Industry |
Facet | Facets allow a field to be used as a type of dynamic filter that a user can interact with in the search experience to narrow their search. This is best for structured enum/option fields where there are a finite number of variations across entities. | Department, Category, Vertical, Industry, Department, Insurance, Services, Payment Methods |
Sortable | Sortable allows a field to be used as a sorting method that is controlled by the algorithm or by the user. | Name, Date, Popularity, Accepting New Patients |
Direct Answer | Direct Answer allows a field to be surfaced in a prioritized direct answer card within the search experience. | Address, phone, title, calories, allergens |
Phrase Match | Phrase Match allows an entity to be surfaced only when there is an exact phrase match contained in the query. | Keywords, First Name, Last Name |
Semantic Text Search | This turns on our Semantic Text Search algorithm, which will match a user’s query to an entity name that semantically similar (not available for Location entities). | Name, especially FAQ Name and Help Article Name |
Document Search | This turns on our Document Search algorithm, which searches long, unstructured content from a Knowledge Graph entity and returns featured snippets. | Description and Body fields from Help Articles, Blogs, Product Descriptions, and much more |
Adding Display Fields
For each vertical, you can use the displayFields
property to control the entity profile field values that are returned as part of the Search API response.
This is required if you want to return a field value from a related entity of a result. If you do not include displayFields, Search will return all fields on the result entity, but not any fields of related entities.
If you do include displayFields, Search will only return the fields that you provide in this property. You need to make sure that all the fields you want to display on the frontend are included in this property.
Let’s say, for example, that you are working on a doctors vertical, and each doctor is related to a specialty entity that has the name of that specialty and a list of related conditions and treatments. Here is an example of a displayFields property
that you might set up to display all of those attributes:
"displayFields": [
"name",
"c_specialty.name",
"c_specialty.c_relatedConditions",
"c_specialty.c_relatedTreatments"
]
To learn more about displayFields
and how they can be used to reference entity relationships, see
this unit
Configuring via UI vs. JSON
Searchable Field Configuration via UI
As you configure each vertical in the UI, you will be presented with a Searchable Fields section. Simply add a field in the top right to enable another field for Search indexing. Once you select the field, you can designate which type of Searchable field type to apply to the given field. In the example below within the Community Stories vertical, we have builtin.entityType
set as a NLP filter, name
set as Text Search, and c_theme
set as both NLP Filter and Facet Filter.
Searchable Field Configuration via JSON
To access the Search Configuration in the JSON editor, simply click the “Edit as JSON’ link in the left pane.
In the JSON instance of the Search Configuration, Searchable Fields are referenced by their API Name. This can be found in the Searchable Fields section of the UI, API documentation, or on the View Entity Type page found by navigating to Knowledge Graph > Configuration > Entity Types and clicking on a type. Any custom fields will have a prefix of c_
and any built-in fields will not. Both profile fields and custom fields can be marked as searchable.
To set a field as Searchable, specify the API Name of the field you are setting along with the filter type(s) you’d like to set it as. A filter can be set as one of all of the available filter types mentioned above.
”name”: {
"textSearch": true
}
Within the greater community_stories
vertical object in the JSON Configuration, the format would be:
"community_stories": {
"entityTypes": [
"ce_communityStory"
],
"name": "Community Stories",
"searchableFields": {
"builtin.entityType": {
"nlpFilter": true,
"textSearch": false
},
"c_theme": {
"facet": true,
"nlpFilter": true
},
"name": {
"nlpFilter": false,
"phraseMatch": false,
"textSearch": true
}
},
"sortBys": [],
"source": "KNOWLEDGE_MANAGER"
},
Throughout this module, you’ll learn about Searchable Fields and their use cases. Searchable fields can simply be set through the UI. However, if you choose to make edits directly in the JSON editor, this module also provides JSON formatting for each Searchable Field type.