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

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 8/9 — PHP код на странице

В drupal 8 и 9 выпилили возможность вставить PHP код на страницу. С одной стороны это правильно и безопасно, с другой стороны — иногда нужно. Для того чтобы вернуть возможность вставить PHP потребуется установить расширение.

Теги

Обновление Drupal 9 в Windows с помощью Composer

Надоело мне вручную обновлять Drupal 9. Решил я это дело немного автоматизировать. Если Drupal на Linux, то удобно обновлять через Composer. А если на Windows, то... А что мешает нам поставить Composer в Windows?

Теги