search_api-8.x-1.15/src/Plugin/search_api/processor/IgnoreCase.php
src/Plugin/search_api/processor/IgnoreCase.php
<?php namespace Drupal\search_api\Plugin\search_api\processor; use Drupal\search_api\Item\FieldInterface; use Drupal\search_api\Plugin\search_api\data_type\value\TextValueInterface; use Drupal\search_api\Processor\FieldsProcessorPluginBase; /** * Makes searches case-insensitive on selected fields. * * @SearchApiProcessor( * id = "ignorecase", * label = @Translation("Ignore case"), * description = @Translation("Makes searches case-insensitive on selected fields."), * stages = { * "pre_index_save" = 0, * "preprocess_index" = -20, * "preprocess_query" = -20 * } * ) */ class IgnoreCase extends FieldsProcessorPluginBase { /** * {@inheritdoc} */ protected function processField(FieldInterface $field) { parent::processField($field); foreach ($field->getValues() as $value) { if ($value instanceof TextValueInterface) { $value->setProperty('lowercase'); } } } /** * {@inheritdoc} */ protected function process(&$value) { // We don't touch integers, NULL values or the like. if (is_string($value)) { $value = mb_strtolower($value); } } }