You are here

protected function SnowballStemmer::process in Snowball Stemmer 8

Same name and namespace in other branches
  1. 2.x src/Plugin/search_api/processor/SnowballStemmer.php \Drupal\snowball_stemmer\Plugin\search_api\processor\SnowballStemmer::process()

Processes a single string value.

This method is ultimately called for all text by the standard implementation, and does nothing by default.

Parameters

mixed $value: The value to preprocess, as a reference. Can be manipulated directly, nothing has to be returned. Since this can be called for all value types, $value has to remain the same type. The possible types for $value depend on shouldProcess().

Overrides Stemmer::process

See also

\Drupal\search_api\Processor\FieldsProcessorPluginBase::shouldProcess()

File

src/Plugin/search_api/processor/SnowballStemmer.php, line 143

Class

SnowballStemmer
Stems search terms.

Namespace

Drupal\snowball_stemmer\Plugin\search_api\processor

Code

protected function process(&$value) {

  // In the absence of the tokenizer, and/or HTML processor, this ensures
  // split words for stemming. Leaves strings in much the same state as
  // search api will for storage.
  $words = preg_split('/[^\\p{L}\\p{N}]+/u', strip_tags($value), -1, PREG_SPLIT_NO_EMPTY);
  $stemmed = [];
  foreach ($words as $word) {
    $stemmed[] = $this
      ->stem($word);
  }
  $value = implode(' ', $stemmed);
}