public function SolrFieldType::getDynamicFields in Search API Solr 8.2
Same name and namespace in other branches
- 8.3 src/Entity/SolrFieldType.php \Drupal\search_api_solr\Entity\SolrFieldType::getDynamicFields()
- 4.x src/Entity/SolrFieldType.php \Drupal\search_api_solr\Entity\SolrFieldType::getDynamicFields()
Gets a list of dynamic Solr fields that will use this Solr Field Type.
Parameters
bool $multilingual:
Return value
array
Overrides SolrFieldTypeInterface::getDynamicFields
File
- src/
Entity/ SolrFieldType.php, line 327
Class
- SolrFieldType
- Defines the SolrFieldType entity.
Namespace
Drupal\search_api_solr\EntityCode
public function getDynamicFields($multilingual = FALSE) {
$dynamic_fields = [];
$prefixes = $this->custom_code ? [
'tc' . $this->custom_code,
'toc' . $this->custom_code,
] : [
't',
'to',
];
foreach ($prefixes as $prefix_without_cardinality) {
foreach ([
's',
'm',
] as $cardinality) {
if ($multilingual || $this->custom_code) {
$prefix = $prefix_without_cardinality . $cardinality;
$name = $multilingual ? Utility::getLanguageSpecificSolrDynamicFieldPrefix($prefix, $this->field_type_language_code) : $prefix . '_';
$dynamic_fields[] = $dynamic_field = [
'name' => SearchApiSolrUtility::encodeSolrName($name) . '*',
'type' => $this->field_type['name'],
'stored' => TRUE,
'indexed' => TRUE,
'multiValued' => 'm' === $cardinality,
'termVectors' => TRUE,
'omitNorms' => strpos($prefix, 'to') === 0,
];
if ($multilingual && $this->custom_code && 'und' == $this->field_type_language_code) {
// Add a language-unspecific default dynamic field for that custom code.
$dynamic_field['name'] = SearchApiSolrUtility::encodeSolrName($prefix) . '_*';
$dynamic_fields[] = $dynamic_field;
}
}
}
}
return $dynamic_fields;
}