Столкнулся с проблемой несовпадения collations в БД. Интернет подобным просто кишит. Видал подобная проблема была озвучена на форумах, и был дан комплект SQL запросов напрямую к СУБД для её решения.
http://www.google.ru/search?q=SELECT+...utf-8&aq=t
У меня возникла ошибка вида
Вот шаблон к ее решению
1. Удаляем модуль поиск, включая таблицы и статистику.
2. Устанавливаем модуль вновь.
Подключаемся к СУБД с достаточными правами на модификацию таблиц в конкретной БД.
Я определил себе следующий пакет запросов
3. Проводим переиндексацию. Готово.
У меня возникла ошибка вида
File: ... /bitrix/modules/search/classes/general/search.php Line: 201 MySQL Query Error: SELECT sc.ID ,sc.MODULE_ID ,sc.IT... [Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='] |
Вот шаблон к ее решению
1. Удаляем модуль поиск, включая таблицы и статистику.
2. Устанавливаем модуль вновь.
Подключаемся к СУБД с достаточными правами на модификацию таблиц в конкретной БД.
Я определил себе следующий пакет запросов
alter table b_search_content modify `SEARCHABLE_CONTENT` longtext NULL collate utf8_unicode_ci; alter table b_search_content modify `TITLE` text NULL collate utf8_unicode_ci; alter table b_search_content modify `TAGS` text NULL collate utf8_unicode_ci; alter table b_search_content modify `BODY` text NULL collate utf8_unicode_ci; alter table b_search_content modify `URL` text NULL collate utf8_unicode_ci; alter table b_search_content modify `PARAM1` text NULL collate utf8_unicode_ci; alter table b_search_content modify `PARAM2` text NULL collate utf8_unicode_ci; alter table b_search_content modify `LID` char(2) NOT NULL collate utf8_unicode_ci; alter table b_search_content modify `UPD` varchar(32) NULL collate utf8_unicode_ci; alter table b_search_content modify `ITEM_ID` varchar(255) NOT NULL collate utf8_unicode_ci; alter table b_search_content_site modify `SITE_ID` char(2) NOT NULL collate utf8_unicode_ci; alter table b_search_content_stem modify `LANGUAGE_ID` char(2) NOT NULL collate utf8_unicode_ci; alter table b_search_content_stem modify `STEM` varchar(50) NOT NULL collate utf8_unicode_ci; alter table b_lang modify `LID` char(2) NOT NULL collate utf8_unicode_ci; alter table b_search_tags modify `SITE_ID` char(2) NOT NULL collate utf8_unicode_ci; alter table b_search_content_freq modify `LANGUAGE_ID` char(2) NOT NULL collate utf8_unicode_ci; alter table b_search_content_freq modify `SITE_ID` char(2) NULL collate utf8_unicode_ci; alter table b_search_content_freq modify `STEM` varchar(50) NOT NULL collate utf8_unicode_ci; |
3. Проводим переиндексацию. Готово.