Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Другие форумы » Все о phpBB2

Модерирует : Antuan, Dekker

Antuan (29-10-2004 02:01):  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

NT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Мы переехали в новый топик! Сюда!

 
 

В этой теме обсуждаем форумный движок phpBB


» Полезные Линки:
   » http://www.phpBB.com  - официальный сайт  
   » http://forumimages.com - сайт с графикой для phpBB2
   » http://sourceforge.net/...  -  phpBB 2.0.8a
   » http://www.phpBB.com/phpBB/  - обсуждение и поддержка (english)
   » http://www.phpbbhacks.com  - всевозможные хаки  
   » http://www.phpbbhacks.com/templates.php  - шаблоны для phpBB  
   » http://www.phpbbhacks.com/templatesdemo
   » http://www.phpbb2-users.de/ - довольно хороший сайт про phpBB
   » http://myphpbb.com.ru/ - Неплохой сайт про phpBB, много хаков.
   » http://forum.ru-board.com/...фильтр по форуму "Другие форумы" по теме phpBB
   » http://www.hacksphpbb.ru  - Еще один российский сайт модов (хаков)  
 
» Полезные Хаки:
   » Advanced Quick Reply Hack (Быстрый ответ) [ чинить баг ]
   » Last Post Topic on Index (Название топика с последним ответом на главной странице)
   » Forum Icons (Разные иконки форумов)
   » Double post merge (Склеивание постов)
   » Translit BBCode (Заменяет транслит на кириллицу методами php)
   » eDonkey Link replacer (Добавляет любой текст в звериные линки на форуме)
   » "Хак" для Advanced Quick Reply Hack (Добавляет имя цитируемого юзера)
   » Хак: Замечания к постам (Текст модератора под постом)
   » Хак: Бан в куки (информация о том что ты был забанен пишется еще и в cookies)
 
»  Ответы на вопросы:
   » Не работают куки (cookies)
   » Как в phpBB вставить баннеры и все такое прочее?
   » Форум заменяет русский текст на "лабуду" типа "тест"
   » Advanced Quick Reply добавляет лишнюю строку при цитировании
   » Как отредактировать условия регистрации?
   » Как убрать надпись о том что если вам меньше 13ти лет...?

Всего записей: 1861 | Зарегистр. 27-07-2002 | Отправлено: 00:17 04-09-2002 | Исправлено: xntx, 23:46 28-10-2004
Jovani



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Putin
Лучше сделай так, как сказал romutis.
Вариант который я предложил это если не сможешь сделать.

Всего записей: 205 | Зарегистр. 23-07-2001 | Отправлено: 02:41 12-05-2003
alexhemp



упал с пальмы
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
romutis

Цитата:
Сынку, а давай ты мне не будешь предлагать доки читать?  

Прости, ником ошибся.  
Хотел это Putin отправить.
Тебя хотел попросить не ругаться. Если ты знаешь как правильно сделать, расскажи. Не подошел совет или он не верный, что-ж все мы люди. В конце концов советы тут бесплатные.

----------
Ничего не могу с собой поделать - Я ГЛАВНЫЙ! © Федор Сумкин

Всего записей: 1944 | Зарегистр. 13-12-2001 | Отправлено: 00:49 13-05-2003 | Исправлено: alexhemp, 00:52 13-05-2003
Putin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xntx
Это не то... у меня платный хост.
 
Что значит поиск умирает?
 
Тогда так его исправить по нормальному? Поподробнее можно?
 
Добавлено

Цитата:
Настроить MySQL правильно - чтобы дефолтный characterset у него был CP1251.

Как это сделать???

Всего записей: 72 | Зарегистр. 25-03-2002 | Отправлено: 02:19 13-05-2003
alexhemp



упал с пальмы
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Putin
 
Я тут провел расследование. Оно показало, что даже если MySQL запущен с Default charset = charset твоего сайта (необязательно WIN1251), но нет вызова setlocale(LC_CTYPE, "нужная локаль") то phpBB2 при постинге вообще не добавляет русские слова в индекс и совершенно естественно их не ищет. Таким образом нужно либо добавить вызов setlocale в свой lang_russian.php или, если язык не один - прямо в config.php.  
 
Локаль может писаться по разному, в зависимости от сервера и хостинга.
У меня на FreeBSD по умолчанию CP1251 вообще не было, а локаль для поддержки KOI8-R называлась 'ru_RU.KOI8-R'. на твоем хостинге или сервере все может немного отличаться, например на Zenon локаль для Win1251 называется просто 'ru'.
 
Только я чего-то может не пойму, но в ф-ции clean_words которая вызывается для предварительной обработки текста из add_search_words есть такая строка

Код:
 
// 'words' that consist of <3 or >20 characters are removed.
$entry = preg_replace('/\b([a-z0-9]{1,2}|[a-z0-9]{21,})\b/',' ', $entry);
 

 
По идее определение a-z включает только буквы латинского алфавита. Таким образом на других языках ограничений на длину слова нет? И индексируются все предлоги и союзы и их обязательно в search_stopwords.txt нужно класть тогда?
 
Да и еще - задумался тут над таким вопросом, предположим я исправил это положение, добавил search_stopwords.txt, есть ли простой способ переиндексации постов, или нужно свой скрипт писать, который будет дергать ф-ции из functions_search.php?
 


----------
Ничего не могу с собой поделать - Я ГЛАВНЫЙ! © Федор Сумкин

Всего записей: 1944 | Зарегистр. 13-12-2001 | Отправлено: 02:30 13-05-2003
xntx



хнотик-багоискатель
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Putin

Цитата:
Что значит поиск умирает?  

значит - что он будет жрать процессор очень сильно, и в скором начнет тормозить, по этой причине здесь нет поиска на данный момент
 

Цитата:
Как это сделать???  

обратись к хостеру, я помоему в своей панели такой настройки не видел

----------
Hello world!

Всего записей: 5169 | Зарегистр. 15-02-2003 | Отправлено: 02:35 13-05-2003
alexhemp



упал с пальмы
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Putin

Цитата:
Это не то... у меня платный хост.  

Выясни какой у твоего хостера на mySQL default charset для mySQL.
 
Это определяется при запуске mysql или при компиляции.
 
Вот здесь: http://www.mysql.ru/docs/man/Character_sets.html подробно расписано, но полюбому это задача хостера.

----------
Ничего не могу с собой поделать - Я ГЛАВНЫЙ! © Федор Сумкин

Всего записей: 1944 | Зарегистр. 13-12-2001 | Отправлено: 02:38 13-05-2003
Jovani



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Putin хостер, даже если он платный, может и не поставить charset для твоей базы, поэтому я и предложил свой "хреновый" вариант, который может пока для тебя единственный.
 
Напиши ему, разьясни ситуацию. Мне это интересно, потому как сам был в подобной ситуации .

Всего записей: 205 | Зарегистр. 23-07-2001 | Отправлено: 06:10 13-05-2003
romutis

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Резюмируя всё вышесказанное:
Основная "фишка" поиска слов в phpBB: не производится полнотекстовый поиск по таблице сообщений (что есть долго и тормозно), но производится поиск, с использованием двух специальных таблиц: Wordlist и Wordmatch, куда при добавлении сообщения в форум, заносятся не только слова, но и словоформы. Пример: Есть с сообщении слово "автобус" - занесутся в таблицы: авто, автоб, автобу, автобус. Потом при поиске по словоформе "автоб" - phpBB быстренько найдет нужную словоформу и покажет сообщение, в котором эта словоформа встречается.
 
Русский язык в phpBB2 имеет кодировку Win1251. Если MySQL запущен с characterset, отличным от CP1251 - поиск по словоформам, с использованием таблиц Wordlist и Wordmatch будет невозможен, phpBB не сумеет разбить слово в непонятной кодировке на словоформы. Т.е. если искать слово "автобус" - то phpBB найдет быстро это слово, но не найдет словоформы или это же слово, но в другом регистре букв.
 
Варианты лечения: попросить хостера прописать в файл /etc/my.cnf такую строчку (раздел [mysqld]):

Код:
default-character-set = cp1251

 
 
Промежуточный вариант a-la vBulletin (работающий на маленьких по размеру форумах):
объявить charset win1251 как multibyte

Код:
$multibyte_charset = 'windows-1251, utf-8, big5, shift_jis, euc-kr, gb2312';

Для многобайтовых чарсетов phpBB не использует поиск по таблицам Wordlist и Wordmatch - ищет сразу по таблице сообщений. Очень медленный вариант, с большой нагрузкой на базу - но, порой, единственный вариант при наличии тупого или ленивого хостера.
 
 
P.S. Если вы переделали кодировку базы на CP1251 - вам нужно пересобрать таблицы WordList и Wordmatch, чтобы уже существующие сообщения тоже попадали в поиск. Есть маленький скрипт для этого - available upon request.

----------
In America, honey, our names don't mean sh*t...

Всего записей: 824 | Зарегистр. 21-07-2002 | Отправлено: 09:24 13-05-2003
Ilshat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[t[

Всего записей: 1 | Зарегистр. 18-02-2003 | Отправлено: 09:41 13-05-2003
alexhemp



упал с пальмы
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
romutis
Насчет CP1251 - не уверен что phpbb вообще как-то языки друг от друга отличает, по крайней мере ничего такого я в functions_search.php не нашел. Если скажем перекодить lang_russian в KOI8-R и выставить LOCALE в ru_RU.KOI8-R должно тоже работать.
Думаю нужно просто совпадения LOCALE и кодировки базы, чтобы LIKE по wordlist работал.
 
Насчет скрипта переиндексации - можешь скинуть мне в мыло?


----------
Ничего не могу с собой поделать - Я ГЛАВНЫЙ! © Федор Сумкин

Всего записей: 1944 | Зарегистр. 13-12-2001 | Отправлено: 11:14 13-05-2003 | Исправлено: alexhemp, 11:16 13-05-2003
romutis

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alexhemp
LC_LOCALE было в предыдущих версиях phpBB - сейчас от нее отказались, ибо установить ее можно не всегда и не везде.  
 
О базе - а факт ли, что MySQL по умолчанию работает в KOI8-R? Обычно запускают совсем без параметров и default charset = latin1.

Всего записей: 824 | Зарегистр. 21-07-2002 | Отправлено: 14:42 13-05-2003
alexhemp



упал с пальмы
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
romutis
Я к тому говорил, что пустить MySQL можно с любой локалью.  
 

Цитата:
LC_LOCALE было в предыдущих версиях phpBB - сейчас от нее отказались, ибо установить ее можно не всегда и не везде

Что-то без setlocale вообще русские слова в wordlist не добавляются, соотвестветственно искать просто нечего, хоть LIKE и работает (на других таблицах).
 
Думаю если поиск обычный не работает, а с использование $multibyte_charset помогает, то копать нужно в сторону setlocale.


----------
Ничего не могу с собой поделать - Я ГЛАВНЫЙ! © Федор Сумкин

Всего записей: 1944 | Зарегистр. 13-12-2001 | Отправлено: 15:52 13-05-2003
GaRRiLL



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
romutis

Цитата:
Пример: Есть с сообщении слово "автобус" - занесутся в таблицы: авто, автоб, автобу, автобус.

Поправочка. Такого в phpbb нет. Да и не нужно. Заносится просто слово автобус. А ещё там некорректно идёт работа с символами "_" и "-"
Если юзеру нужно найти слова на "авто", то в поиске нужно будет ввести "авто*".

Всего записей: 2431 | Зарегистр. 18-01-2002 | Отправлено: 18:38 13-05-2003
Putin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хостер сказал что mySQL default задаёться для всего сервера а не для отдельного клиента...
Так что буду править файлы, остольное проблеммы хостера...

Всего записей: 72 | Зарегистр. 25-03-2002 | Отправлено: 04:42 14-05-2003
alexhemp



упал с пальмы
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Putin
Да просто если хостер русский, то 99% вероятность, что default charset для MySQL стоит Win1251. Но если не русский, то это 99% не так.
 
С другой стороны, есть хостинги, где клиенту выдается персональный сервер Apache и MySQL, вероятно на таком можно поменять.
 
GaRRiLL
Да я согласен. Ничего такого в search_functions.php нет.

----------
Ничего не могу с собой поделать - Я ГЛАВНЫЙ! © Федор Сумкин

Всего записей: 1944 | Зарегистр. 13-12-2001 | Отправлено: 12:42 14-05-2003
romutis

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GaRRiLL

Цитата:
Такого в phpbb нет. Да и не нужно.

 
На localhost, может и не нужно, а на рабочем сайте - может и нужно.
Так сделано у меня - ибо у меня были проблемы с поиском на буржуйском хостинге (charset = latin1), пришлось переделать поиск чтобы искал по словоформам... Хотел сдалать еще разбиение на словоформы по слогам - но решил не париться с лексическими наворотами.
 
Сейчас, в связи с появлением выделенного сервера и возможности настройки его под мои нужды - придется вернуться к стандартному phpBB-поиску.

Всего записей: 824 | Зарегистр. 21-07-2002 | Отправлено: 13:10 14-05-2003
Vorgal

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А у меня поиск русский тоже не работал, пока multibyte не написал. Хотя дефолтовый чарсет для mySQL именно cp1251, но слова недобавляются.. как и было написано.. и setlocale тоже не помогало...

Всего записей: 24 | Зарегистр. 22-02-2002 | Отправлено: 11:58 15-05-2003
alexhemp



упал с пальмы
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vorgal
Разбирайся с search_functions.php Возможно стоит подумать как его пропатчить

----------
Ничего не могу с собой поделать - Я ГЛАВНЫЙ! © Федор Сумкин

Всего записей: 1944 | Зарегистр. 13-12-2001 | Отправлено: 12:19 15-05-2003
GaRRiLL



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
romutis

Цитата:
а на рабочем сайте - может и нужно.

Смотря как подходить к вопросу. Всё равно при вводе "соб*", система будет искать "соб%", найдёт она и "собака", и "собирать". Зачем же в итак большую таблицу добавлять лишние слова.
Единственно правильное решение это только

Цитата:
Сейчас, в связи с появлением выделенного сервера и возможности настройки его под мои нужды - придется вернуться к стандартному phpBB-поиску.

 
[OFF]Жалко Интер [/OFF]

Всего записей: 2431 | Зарегистр. 18-01-2002 | Отправлено: 14:50 15-05-2003
romutis

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GaRRiLL
Т.е. ты предлагаешь идти по пути обучения юзеров правилам поиска? Может это - научить их регэкспами пользоваться для поиска, чего уж париться?
 
Я делал так, как удобне не мне, а моим пользователям. Самые хреновые юзерские интерфейсы и юзабилити  - у программ, сделанных программистами для программистов.

Всего записей: 824 | Зарегистр. 21-07-2002 | Отправлено: 15:21 15-05-2003
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Другие форумы » Все о phpBB2
Antuan (29-10-2004 02:01):


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru