Search API: Custom relationship?
Oh, this turned out to be easy. Use hook_entity_property_info_alter() to define a new property.

/**
 * Implements hook_entity_property_info_alter().
 *
 * @see profile2_entity_property_info_alter()
 */
function MYMODULE_entity_property_info_alter(&amp;$info) {
  // Add related profiles to the user object.
  $properties = &amp;$info['user']['properties'];
  $properties['MYMODULE_profile2'] = array(
    'type' =&gt; 'profile2',
    'label' =&gt; 'Profile 2 (MYMODULE)',
    'description' =&gt; 'The first profile2 profile that can be found on the user.',
    /* @see _MYMODULE_get_profile2() */
    'getter callback' =&gt; '_MYMODULE_get_profile2',
    # 'bundle' =&gt; $type_name
  );
}

/**
 * Entity property callback.
 *
 * @param object $account
 * @param array $options
 * @param string $name
 *
 * @return object|null
 *
 * @see profile2_user_get_properties()
 */
function _MYMODULE_get_profile2($account, array $options, $name) {
  $profiles = profile2_load_by_user($account, NULL);
  return reset($profiles) ?: NULL;
}