You are here

function drush_search_api_federated_solr_fields in Search API Federated Solr 7.2

Same name and namespace in other branches
  1. 8.3 search_api_federated_solr.drush.inc \drush_search_api_federated_solr_fields()
  2. 8.2 search_api_federated_solr.drush.inc \drush_search_api_federated_solr_fields()
  3. 7.3 search_api_federated_solr.drush.inc \drush_search_api_federated_solr_fields()
  4. 4.x search_api_federated_solr.drush.inc \drush_search_api_federated_solr_fields()

List all fields, as they map to solr machine names, for a given index.

File

./search_api_federated_solr.drush.inc, line 29
Drush commands for Search API Federated Solr.

Code

function drush_search_api_federated_solr_fields() {
  if (search_api_federated_solr_drush_static(__FUNCTION__)) {
    return;
  }
  $search_index = variable_get('search_api_federated_solr_search_index');

  // Get the index entity.

  /** @var \SearchApiIndex $index */
  $index = search_api_index_load($search_index);
  if (!$index) {
    drush_print(dt('The search app index could not be loaded.'));
    return;
  }

  // Get server entity.

  /** @var \SearchApiServer $server */
  try {
    $server = $index
      ->server();
  } catch (SearchApiException $e) {
    drush_print('The search server could not be loaded.');
    return;
  }

  // Get the search api solr service class.

  /** @var \SearchApiSolrService $solr */
  $solr = new SearchApiSolrService($server);

  // If this is an acquia environment and if it is an acquia search server
  // get the Acquia Search Service instead.
  if (isset($_ENV['AH_SITE_ENVIRONMENT']) && module_exists('search_api_acquia') && $server->class === 'acquia_search_service') {

    /** @var \SearchApiAcquiaSearchService $solr */
    $solr = new SearchApiAcquiaSearchService($server);
  }

  // Get the index field names as they map to solr names.
  $field_names = $solr
    ->getFieldNames($index);
  $rows[] = array(
    dt('Index Field Machine Name'),
    dt('| Solr Field Machine Name'),
  );
  $rows[] = array(
    dt('-------------------------'),
    dt('| -----------------------'),
  );
  foreach ($field_names as $key => $value) {
    $row = array(
      $key,
      '| ' . $value,
    );
    $rows[] = $row;
  }
  drush_print_table($rows);
}