Перейти к основному содержанию

Drupal — Search API конфликтует с Snowball Stemmer

Search поиск

15 октября вышла новая версия модуля Search API 1.30 для Drupal. После установки обновления сайт перестал работать. Оказалось, новый модуль поиска конфликтует с модулем морфологического поиска Snowball Stemmer.

Ошибки:

PHP Fatal error:  Declaration of Drupal\snowball_stemmer\Plugin\search_api\processor\SnowballStemmer::getLanguageManager() must be compatible with Drupal\search_api\Plugin\search_api\processor\Stemmer::getLanguageManager(): Drupal\Core\Language\LanguageManagerInterface in /var/www/html/web/modules/contrib/snowball_stemmer/src/Plugin/search_api/processor/SnowballStemmer.php on line 102

PHP Fatal error:  Declaration of Drupal\snowball_stemmer\Plugin\search_api\processor\SnowballStemmer::setLanguageManager(Drupal\Core\Language\LanguageManagerInterface $language_manager) must be compatible with Drupal\search_api\Plugin\search_api\processor\Stemmer::setLanguageManager(Drupal\Core\Language\LanguageManagerInterface $language_manager): Drupal\search_api\Plugin\search_api\processor\Stemmer in /var/www/html/web/modules/contrib/snowball_stemmer/src/Plugin/search_api/processor/SnowballStemmer.php on line 114

https://www.drupal.org/project/snowball_stemmer/issues/3394257

Суток не прошло, как наш коллега выкатил патч для Snowball Stemmer:

https://www.drupal.org/files/issues/2023-10-16/snowball_stemmer-3394257-2.patch

Обновление Search API успешно устанавливается, но update.php не запускается, да и вообще сайт не работает.

Для оперативного ручного ремонта после обновления Search API нужно отредактировать файл composer.json, установив зависимость от версии search_api 1.30:

"drupal/search_api": "^1.30"

drupal

Отредактировать файл /src/Plugin/search_api/processor/SnowballStemmer.php, удалив конфликтующие функции getLanguageManager() и setLanguageManager():

drupal

После этого запустить update.php, чтобы закончить установку обновления Search API.

drupal

drupal

После этого всё начинает работать, включая морфологический поиск.

drupal

Теги

 

Похожие материалы

Drupal 9 — модуль Ludwig, ручная альтернатива Composer

Выделяю время на обслуживание сайта, потом кучу статей на тему Drupal приходится писать. И людям помочь, и самому не забыть. Вашему вниманию представляется незаменимый в некоторых случаях модуль Ludwig.

Теги