Multi-Hop Relationships (Summer ‘22 Release)

Yext now supports Multi-Hop Search so that end-users can query data that is stored on related entities, several “hops” away in the Knowledge Graph!

For example, there may be a case where a user is looking for a list of doctors that treat a certain condition based on their specialty (e.g., a doctor that can treat a broken arm). In the Knowledge Graph, Doctor entities would be related to Specialty entities, and Specialty entities would be related to Condition entities. Even though Doctors and Conditions are not directly related, Streams allows us to search attributes “two hops” away from the Doctor entity.

You can set this up in your Search configuration by adding relationship fields as searchable fields using dot notation. In the case below, c_relatedSpecialties.c_relatedCondition.name refers to the Name field of the Condition entity that is related to the Specialty entity that is related to the Doctor entity we want to return:

{
   "verticals": {
      "ce_doctors": {
         "searchableFields": {
            "c_relatedSpecialties.c_relatedCondition.name": {
               "facet": true
             },

            "c_relatedSpecialties.c_relatedCondition.c_synonym": {
               "nlpFilter": true

            }
         }
      }
   }
}

To learn more about Multi-Hop Relationships visit the Core Configuration - Verticals module.

This feature was automatically enabled in all Sandbox and Production accounts, so you can start taking advantage of this today!

@Micaela_Luders is there going to be a module specifically for Multi-Hop Relationships? I am not seeing anything in the Core Configuration - Verticals now about setting this up.

1 Like

Hi Jordan,

You can read more about multihop and how to add entity relationships in search in this module!

Hi @Micaela_Luders, is there a way to assign mutli-hop relationships in a Search card override instead of the Search configuration? I tried dot notation but it does not seem to work.

Ex: In the Search results page for a location vertical, I would like to display hours from a related location (c_relatedLocation) in the card.

Hi @Clement_Mooc - if you want to add data from an entity relationship to a result card, you’ll need to add displayFields. There is info about it in this unit - let us know if you have any other questions!