You are here

protected function SolrMultisiteFieldManager::buildFieldDefinitions in Search API Solr 8.3

Same name and namespace in other branches
  1. 4.x src/SolrMultisiteFieldManager.php \Drupal\search_api_solr\SolrMultisiteFieldManager::buildFieldDefinitions()

Builds the field definitions for a multisite index.

Parameters

\Drupal\search_api\IndexInterface $index: The index from which we are retrieving field information.

Return value

\Drupal\Core\TypedData\DataDefinitionInterface[] The array of field definitions for the server, keyed by field name.

Throws

\Drupal\search_api\SearchApiException

Overrides SolrFieldManager::buildFieldDefinitions

File

src/SolrMultisiteFieldManager.php, line 24

Class

SolrMultisiteFieldManager
Manages the discovery of Solr fields.

Namespace

Drupal\search_api_solr

Code

protected function buildFieldDefinitions(IndexInterface $index) {
  $fields = [];
  foreach ($index
    ->getFields() as $index_field) {
    $solr_field = $index_field
      ->getPropertyPath();
    $field = new SolrMultisiteFieldDefinition([
      'multivalued' => preg_match('/^[a-z]+m_/', $solr_field),
    ]);
    $field
      ->setLabel($index_field
      ->getLabel());
    $field
      ->setDataType($index_field
      ->getType());
    $fields[$solr_field] = $field;
  }
  return $fields;
}