Jovani
Спасибо за stopwords и синонимы. Обрубило лишнее.
Нужен регистронезависимый поиск на русском.
-
- Former team member
- Сообщения: 4463
- Стаж: 20 лет 5 месяцев
- Поблагодарили: 1 раз
-
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 17 лет 4 месяца
У меня та же проблема, что описана в заглавном посте темы, т.е., регистрозависимый поиск на русском языке (английский работает нормально).
Раскомментирование функции setlocale (LC_ALL, 'ru_RU.CP1251'); в lang_main.php не помогло - кириллические слова из новых постов всё равно добавляются в поисковый индекс регистрозависимо.
Вот настройки, что я вижу у себя в myPHPadmin:

Хостинг - peterhost.ru
Сам я не компьютерщик, лишь волею судеб выполняю обязанности админа на одном из форумов Рунета. Поэтому буду очень признателен за грамотный совет - что и где надо выставить.
Спасибо за внимание к моей проблеме.
Раскомментирование функции setlocale (LC_ALL, 'ru_RU.CP1251'); в lang_main.php не помогло - кириллические слова из новых постов всё равно добавляются в поисковый индекс регистрозависимо.
Вот настройки, что я вижу у себя в myPHPadmin:
Хостинг - peterhost.ru
Сам я не компьютерщик, лишь волею судеб выполняю обязанности админа на одном из форумов Рунета. Поэтому буду очень признателен за грамотный совет - что и где надо выставить.
Спасибо за внимание к моей проблеме.
-
- Former team member
- Сообщения: 2616
- Стаж: 19 лет 8 месяцев
- Откуда: Новосибирск
- Поблагодарили: 3 раза
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 или личке - на платной основе.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
-
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 17 лет 4 месяца
-
- Former team member
- Сообщения: 2616
- Стаж: 19 лет 8 месяцев
- Откуда: Новосибирск
- Поблагодарили: 3 раза
Пока ничего другого в голову не приходит...
Xpert писал(а):Все-таки локаль надо уточнять у хостера. Не факт, что подойдет именно эта.
Jovani писал(а): Если установлена неверная локаль, то strtolower работает некорректно.
Вот и происходит попадание в разных регистрах.
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
-
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 17 лет 4 месяца
-
- Former team member
- Сообщения: 2616
- Стаж: 19 лет 8 месяцев
- Откуда: Новосибирск
- Поблагодарили: 3 раза
Simone
системная локаль - это свойство ОС на сервере. Из настроек MySQL ее не узнаешь.
системная локаль - это свойство ОС на сервере. Из настроек MySQL ее не узнаешь.
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
-
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 17 лет 4 месяца
Спасибо.
Peterhost в их FAQ пишет, что "на нашем хостинге стандартной кодировкой является cp1251".
В этом случае, раскомментирование setlocale (LC_ALL, 'ru_RU.CP1251'); в lang_main.php, насколько я понимаю, должно было бы мне помочь. Но почему-то не помогло.
А в чём еще может быть проблема?
Добавлено.
Это принципиально? По идее, в моём случае это не должно влиять...
добавлено: менял параметр так и так - без разницы.
Перечислю моды, которые у меня стоят:
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
Peterhost в их FAQ пишет, что "на нашем хостинге стандартной кодировкой является cp1251".
В этом случае, раскомментирование setlocale (LC_ALL, 'ru_RU.CP1251'); в lang_main.php, насколько я понимаю, должно было бы мне помочь. Но почему-то не помогло.
А в чём еще может быть проблема?
Добавлено.
Вопрос такой, я вижу что команда отличается, вместо LC_ALL как предусмотрено в в lang_main.php они рекомендуют параметр LC_CTYPE.Peterhost FAQ писал(а):Почему регулярные выражения, сортировка и другие строковые функции странно работают с русскими буквами (Perl/PHP/MySQL)?
Для того, чтобы нормально работать с русскими буквами, нужно знать, в какой они кодировке. Кодировку можно задать с помощью указания локали. На нашем хостинге стандартной кодировкой является cp1251.
В PHP это делается функцией setlocale:
setlocale(LC_CTYPE, 'ru_RU.CP1251');
Это принципиально? По идее, в моём случае это не должно влиять...
добавлено: менял параметр так и так - без разницы.
Перечислю моды, которые у меня стоят:
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
-
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 17 лет 4 месяца
Даю отбой
Сам допёр, где я лоханулся. В общем, локаль я раскомментировал правильную, т.е. ru_RU.CP1251. Что я не учёл - это то, что у меня выставлен английский профайл. Соответственно, когда отправлялся мой новый пост, он ни хрена не обрабатывался языковым файлом из фолдера lang_russian/. Сейчас я добавил функцию setlocale в оба файла lang_main.php, английский и русский, и всё заработало как часы.
Кириллические слова цензоры у меня тоже не работали - сейчас работают.

Сам допёр, где я лоханулся. В общем, локаль я раскомментировал правильную, т.е. ru_RU.CP1251. Что я не учёл - это то, что у меня выставлен английский профайл. Соответственно, когда отправлялся мой новый пост, он ни хрена не обрабатывался языковым файлом из фолдера lang_russian/. Сейчас я добавил функцию setlocale в оба файла lang_main.php, английский и русский, и всё заработало как часы.
Кириллические слова цензоры у меня тоже не работали - сейчас работают.
-
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 17 лет
Добился регистонезависимости след. образом
в файле 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
при этом ничего не переиндексировал
в файле 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
при этом ничего не переиндексировал