Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Нужен регистронезависимый поиск на русском.

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Jovani
Спасибо за stopwords и синонимы. Обрубило лишнее.
я люблю daft punk | новый sugoi.ru
Simone
phpBB 1.0.0
Сообщения: 5
Стаж: 16 лет 4 месяца

Сообщение Simone »

У меня та же проблема, что описана в заглавном посте темы, т.е., регистрозависимый поиск на русском языке (английский работает нормально).

Раскомментирование функции setlocale (LC_ALL, 'ru_RU.CP1251'); в lang_main.php не помогло - кириллические слова из новых постов всё равно добавляются в поисковый индекс регистрозависимо.

Вот настройки, что я вижу у себя в myPHPadmin:
Изображение

Хостинг - peterhost.ru

Сам я не компьютерщик, лишь волею судеб выполняю обязанности админа на одном из форумов Рунета. Поэтому буду очень признателен за грамотный совет - что и где надо выставить.

Спасибо за внимание к моей проблеме.
Аватара пользователя
Alek$
Former team member
Сообщения: 2616
Стаж: 18 лет 8 месяцев
Откуда: Новосибирск
Поблагодарили: 3 раза

Сообщение Alek$ »

Simone
это читали?
antd2000 писал(а): 2. Писать сообщения уже _после_того_ как эта строчка была расскоментирована.

Если же у Вас фрум живет несколько лет и Вы только что обратили внимание на эту проблему Very Happy - то требуется переиндексация таблицы с поисковыми словами. На эту тему было как минимум 2 мода.
- От Peter Wyss http://phpbbhacks.com/download/434
- И еще один - искать на сайте www.phpbbguru.net
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Simone
phpBB 1.0.0
Сообщения: 5
Стаж: 16 лет 4 месяца

Сообщение Simone »

Читал, и специально указал в своём посте, что слова из НОВЫХ постов добавляются в индекс регистрозависимо.
Аватара пользователя
Alek$
Former team member
Сообщения: 2616
Стаж: 18 лет 8 месяцев
Откуда: Новосибирск
Поблагодарили: 3 раза

Сообщение Alek$ »

Пока ничего другого в голову не приходит...
Xpert писал(а):Все-таки локаль надо уточнять у хостера. Не факт, что подойдет именно эта.
Jovani писал(а): Если установлена неверная локаль, то strtolower работает некорректно.
Вот и происходит попадание в разных регистрах.
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Simone
phpBB 1.0.0
Сообщения: 5
Стаж: 16 лет 4 месяца

Сообщение Simone »

Это понятно - именно поэтому я выложил скриншот, чтобы кто-нибудь разбирающийся мог посмотреть мои настройки MySQL.
Аватара пользователя
Alek$
Former team member
Сообщения: 2616
Стаж: 18 лет 8 месяцев
Откуда: Новосибирск
Поблагодарили: 3 раза

Сообщение Alek$ »

Simone
системная локаль - это свойство ОС на сервере. Из настроек MySQL ее не узнаешь.
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Simone
phpBB 1.0.0
Сообщения: 5
Стаж: 16 лет 4 месяца

Сообщение Simone »

Спасибо.

Peterhost в их FAQ пишет, что "на нашем хостинге стандартной кодировкой является cp1251".

В этом случае, раскомментирование setlocale (LC_ALL, 'ru_RU.CP1251'); в lang_main.php, насколько я понимаю, должно было бы мне помочь. Но почему-то не помогло.

А в чём еще может быть проблема?

Добавлено.
Peterhost FAQ писал(а):Почему регулярные выражения, сортировка и другие строковые функции странно работают с русскими буквами (Perl/PHP/MySQL)?
Для того, чтобы нормально работать с русскими буквами, нужно знать, в какой они кодировке. Кодировку можно задать с помощью указания локали. На нашем хостинге стандартной кодировкой является cp1251.

В PHP это делается функцией setlocale:

setlocale(LC_CTYPE, 'ru_RU.CP1251');
Вопрос такой, я вижу что команда отличается, вместо LC_ALL как предусмотрено в в lang_main.php они рекомендуют параметр LC_CTYPE.
Это принципиально? По идее, в моём случае это не должно влиять...

добавлено: менял параметр так и так - без разницы.

Перечислю моды, которые у меня стоят:
Active Members URL Only
Admin Userlist
Bbcode Strikethrough
Bookmarks Mod
Multiple Bbcode
New Then Unread PMs After Login
Override PMs Limit
Rebuild Search
Remove User Signatures
Security Question Mod by JamesN
YouTube Mod
Emff Player
Simone
phpBB 1.0.0
Сообщения: 5
Стаж: 16 лет 4 месяца

Сообщение Simone »

Даю отбой :)

Сам допёр, где я лоханулся. В общем, локаль я раскомментировал правильную, т.е. ru_RU.CP1251. Что я не учёл - это то, что у меня выставлен английский профайл. Соответственно, когда отправлялся мой новый пост, он ни хрена не обрабатывался языковым файлом из фолдера lang_russian/. Сейчас я добавил функцию setlocale в оба файла lang_main.php, английский и русский, и всё заработало как часы.

Кириллические слова цензоры у меня тоже не работали - сейчас работают.
diR
phpBB 1.0.0
Сообщения: 5
Стаж: 16 лет

Сообщение diR »

Добился регистонезависимости след. образом

в файле lang_russian/lang_main.php

ДОБАВИЛ потому как их просто не было

setlocale(LC_ALL, 'ru_RU.CP1251');
setlocale(LC_NUMERIC, 'C');

перед строчкой:
$lang['ENCODING'] = 'windows-1251';


в файле functions_search.php

Вот здесь:
$entry = str_replace(' ' . trim($stopword) . ' ', ' ', $entry);

и здесь:
$entry = str_replace(' ' . trim($match_synonym) . ' ', ' ' . trim($replace_synonym) . ' ', $entry);

Соответственно меняем на:
$entry = str_replace(' ' . trim(strtolower($stopword)) . ' ', ' ', $entry);

и:
$entry = str_replace(' ' . trim(strtolower($match_synonym)) . ' ', ' ' . trim(strtolower($replace_synonym)) . ' ', $entry);

как советовал Jovani

при этом ничего не переиндексировал

Вернуться в «Поддержка phpBB 2.0.x»