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

Rebuild Search Index - проблемы

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
MiksIr
phpBB 1.0.0
Сообщения: 5
Стаж: 19 лет 2 месяца

Сообщение MiksIr »

Глядел сабжевый модуль.. там такое
$sql = "SELECT post_id FROM ". POSTS_TEXT_TABLE;
$result = $db->sql_query ($sql);
$total_num_rows = $db->sql_numrows ($result);
А зачем так сложно, если есть COUNT()?!
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 19 лет 4 месяца

Сообщение YarNET »

Xpert, это нужно делать для версии форума выше 2.0.6 ?

Jovani писал(а):Раз гуру забыло о проблеме, сообщаю, что ее можно решить так:

найти в моде это

Код: Выделить всё

while (($row = $db->sql_fetchrow ($result)) && (onTime () == true)) {
		add_search_words('single', $row['post_id'], stripslashes($row['post_text']), stripslashes($row['post_subject']));
		$num_rows++;
	}
заменить этим:

Код: Выделить всё

while (($row = $db->sql_fetchrow ($result))/* && (onTime () == true)*/) {
		add_search_words('single', $row['post_id'], stripslashes($row['post_text']), stripslashes($row['post_subject']));
		$num_rows++;
}
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Это для версий выше 2.0.8
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
MiksIr
phpBB 1.0.0
Сообщения: 5
Стаж: 19 лет 2 месяца

Сообщение MiksIr »

Гуру, а вы заглядывали в includes/functions_search.php ? Сейчас гляжу - ощущение, что писали в 10 приемов, причем каждый - после глобальной пьянки.
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 19 лет 4 месяца

Сообщение YarNET »

Xpert, я к сожалению так и не понял одного момента: если это требуется выполнять для мода, в случаии его установки на форум версии выше 2.0.8, то почему же в инструкции по установке мода ничего об этом не сказано?
2. Если я произведу такую замену в файле admin_rebuild_search.php, то после запуска мода у меня не рухнут (очистятся) таблицы поисковые?
Версия форума у меня выше 2.0.8...
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Потому что я не автор мода :)
С таблицами ничего криминального не будет.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 19 лет 4 месяца

Сообщение YarNET »

Xpert, спасибо.
admin_rebuild_search.php отредактировал, все работает.
Хотя надо заметить, что мод работал на сервере и так, а вот на локальном форуме - нет. Теперь и там и там работает.
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Профессор
phpBB 1.4.2
Сообщения: 53
Стаж: 19 лет 3 месяца
Откуда: Орёл

Сообщение Профессор »

Jovani пишет:
Ну так нужно мод переписать, он у меня таблицы очистил
Пока вьехал, что из-за нового common.php, целый час потерял.
У меня только что этот самый мод тоже таблицу очистил.
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 19 лет 4 месяца

Сообщение YarNET »

Профессор, что бы востановить таблице придется это сделать в моде:
найти в моде это

Код: Выделить всё

while (($row = $db->sql_fetchrow ($result)) && (onTime () == true)) { 
      add_search_words('single', $row['post_id'], stripslashes($row['post_text']), stripslashes($row['post_subject'])); 
      $num_rows++; 
   } 


заменить этим:


Код: Выделить всё

while (($row = $db->sql_fetchrow ($result))/* && (onTime () == true)*/) { 
      add_search_words('single', $row['post_id'], stripslashes($row['post_text']), stripslashes($row['post_subject'])); 
      $num_rows++; 
} 
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Профессор
phpBB 1.4.2
Сообщения: 53
Стаж: 19 лет 3 месяца
Откуда: Орёл

Сообщение Профессор »

YarNET, большое спасибо за сочувствие!
Я сейчас как раз это делаю. Надеюсь, что поисковая таблица восстановиться.
Аватара пользователя
YarNET
phpBB 2.0.6
Сообщения: 518
Стаж: 19 лет 4 месяца

Сообщение YarNET »

Точно восстановится :) железно.
Проверь, за что ты платишь деньги провайдеру?
Тестирование скорости соединения с INNTERNET
Профессор
phpBB 1.4.2
Сообщения: 53
Стаж: 19 лет 3 месяца
Откуда: Орёл

Сообщение Профессор »

Ура!
Восстановилось, но я заметил одну особенность.
Оказывается отстуствует индексация по сообщениям, которые пишутся в опросах. Хотя это и не катастрофично, но есть ли готовый рецепт по преодолению этой ерунды?
DedPichto
phpBB 1.4.4
Сообщения: 104
Стаж: 19 лет 2 месяца

Сообщение DedPichto »

Запустил этот мод и у меня размер базы увеличился с 88 до 93 мегов. Это нормально? :) Я почему-то думал, что она наоборот, уменьшится.
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

Что-то я плохо понял, как у вас размер изменился. :)
При переиндексации размер увеличивается, а не уменьшается. В отдельных случаях, при изменениях параметров занесения данных в таблицы, вес может измениться и в меньшую сторону.

includes/functions_search.php

Код: Выделить всё

		// 'words' that consist of <3 or >20 characters are removed.
		$entry = preg_replace('/[ ]([\S]{1,2}|[\S]{21,})[ ]/',' ', $entry);
Тут настраивается длина слов, которые заносятся в таблицы.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
alexsolo
phpBB 1.0.0
Сообщения: 1
Стаж: 19 лет 1 месяц

Сообщение alexsolo »

В регулярном выражении:

Код: Выделить всё

$entry = preg_replace('/[ ]([\S]{1,2}|[\S]{21,})[ ]/',' ', $entry); 
ошибка. Если через него пропустить строку "до ре ми фа" на выходе будет строка "ре фа". Сответственно таблица phpbb_search_wordlist будет забиваться. Я просто вернул код из phpBB 2.0.5, который работает как часы.

Код: Выделить всё

        $entry = explode(' ', $entry);
        for ($i = 0; $i < sizeof($entry); $i++)
        {
           $entry[$i] = trim($entry[$i]);
           if ((strlen($entry[$i]) < 3) || (strlen($entry[$i]) > 20))
           {
              $entry[$i] = '';
           }
        }
        $entry = implode(' ', $entry);
для тех у кого проблемы с strtolower с русскими буквами (на нашем сервере такие проблемы имеют место) я предлагаю добавить в functions_search.php

Код: Выделить всё

function strtolowerr($string)
{
  return strtolower( strtr( $string,"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ","абвгдеёжзийклмнопрстуфхцчшщъыьэюя" ));
}
и заменить 2 вызова strtolower на strtolowerr.

Ну и не забыть добавить в lang_main.php:

Код: Выделить всё

setlocale(LC_ALL, "ru_RU.cp1251"); 
$lang['ENCODING'] = "windows-1251";  

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