Поисковые индексы

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Поисковые индексы

Сообщение Sheer »

Данная ошибка возникает из-за того, что владелец таблиц в базе данных выставлен неверно.
Обратитесь к хостеру.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
F-XIII
phpBB 1.4.1
Сообщения: 42
Стаж: 20 лет 8 месяцев
Откуда: Ростов-на-Дону
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Поисковые индексы

Сообщение F-XIII »

Возникла необходимость смены хостера (несколько лет база работала нормально), поменял на VPS-хостинг... Бэкап базы успешно залился, но у меня выскакивает та же ошибка при попытке создания индексов (Поисковый механизм: Fulltext MySQL):
Column 'post_text' cannot be part of FULLTEXT index [1283]

Если вручную выполнить запрос

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

ALTER TABLE `phpbb3_posts` ADD FULLTEXT (`post_text`);
После этого индексы создаются, но база раздувается с 104Mb до 370Mb - я в шоке... Удаляю индексы (объем базы почти не уменьшился) - повторно создаваться они уже не хотят - снова ошибка [1283]... НО поиск при этом почему-то все равно работает...
Попытался переключится на Fulltext native, но 103000 постов индексируются по 70-90 постов за проход, и жуткие тормоза всего сервера начинаются - 3 суток понадобится, что тоже не правильно как-то...
Я так понимаю в таблице явно есть какие-то ошибки, так не должно быть...

Попробовал запустить mysql_upgrader, он выдал список почти всех таблиц, вот часть списка запросов, касающихся таблицы "phpbb3_posts":

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

# Table: 'phpbb3_posts'
ALTER TABLE phpbb3_posts 
MODIFY post_id mediumint(8) UNSIGNED NOT NULL auto_increment,
MODIFY topic_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY forum_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY poster_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY icon_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY poster_ip varchar(40) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY post_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY post_approved tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY post_reported tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY enable_bbcode tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY enable_smilies tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY enable_magic_url tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY enable_sig tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY post_username varchar(255) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY post_subject varchar(255) DEFAULT '' NOT NULL COLLATE utf8_unicode_ci,
MODIFY post_text mediumtext NOT NULL COLLATE utf8_bin,
MODIFY post_checksum varchar(32) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY post_attachment tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY bbcode_bitfield varchar(255) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY bbcode_uid varchar(8) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY post_postcount tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY post_edit_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY post_edit_reason varchar(255) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY post_edit_user mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY post_edit_count smallint(4) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY post_edit_locked tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
DROP INDEX post_username,
ADD KEY post_username (post_username),
DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Версия MySQL 5.1.69, тип таблиц MyISAM, кодировка базы utf8, в таблицах utf_unicode_ci (ещё со времени конвертирования базы с ср1251, когда был phpBB2.х.х)...

Помогите ламеру разобраться... :)
Последний раз редактировалось F-XIII 26.08.2013 10:05, всего редактировалось 3 раза.
Silver shiny wings bathed in fire
Godly weapons speak to break the chains of darkness ...
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Поисковые индексы

Сообщение владимир1983 »

А если

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

 ALTER TABLE phpbb_posts CONVERT TO CHARACTER SET utf8;
Потом

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

ALTER TABLE `phpbb_posts` ADD FULLTEXT (
    `post_text`
) 
И запусти индексирование.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
F-XIII
phpBB 1.4.1
Сообщения: 42
Стаж: 20 лет 8 месяцев
Откуда: Ростов-на-Дону
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Поисковые индексы

Сообщение F-XIII »

Дополнил свой пост выше...

Ок, попробую вечером... Попутно вопрос: Может быть смена типа таблиц на InnoDB изменит как-то эту ситуацию или не стоит заморачиваться с этим?
Спасибо за отклик...
Silver shiny wings bathed in fire
Godly weapons speak to break the chains of darkness ...
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Поисковые индексы

Сообщение владимир1983 »

Полнотекстовый поиск по InnoDB поддерживается только в крайних версиях MySQL.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
F-XIII
phpBB 1.4.1
Сообщения: 42
Стаж: 20 лет 8 месяцев
Откуда: Ростов-на-Дону
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Поисковые индексы

Сообщение F-XIII »

владимир1983, понял, тогда отпадает...

Кодировка может влиять на скорость индексирования, в моём случае utf_unicode_ci - из-за неё может быть такой тупёж или же это исключительно проблемы ресурсов MySQL... Если дело в ней, и ты в курсе какие настройки надо изменить в MySQL, чтобы она работала пошустрее (), то буду оч признателен за совет... У меня VPS, поэтому поправить их могу без участия хостера...
Silver shiny wings bathed in fire
Godly weapons speak to break the chains of darkness ...
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Поисковые индексы

Сообщение владимир1983 »

100 000 не так много. У меня на индексирование такого количества сообщений уходит около 10 минут, не понимаю о каких трех сутках ты говоришь.
Что у тебя в post_max_size и max_execution_tim?
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
F-XIII
phpBB 1.4.1
Сообщения: 42
Стаж: 20 лет 8 месяцев
Откуда: Ростов-на-Дону
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Поисковые индексы

Сообщение F-XIII »

владимир1983 так я сам в шоке, не такая большая база...
max_execution_time 60
max_input_time 60
max_input_vars 1000
memory_limit 128M
post_max_size 10M
Silver shiny wings bathed in fire
Godly weapons speak to break the chains of darkness ...
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Поисковые индексы

Сообщение Sheer »

F-XIII писал(а):Если вручную выполнить запрос
Этого недостаточно. Должны быть еще созданы индексыpost_subject и post_content
F-XIII писал(а): повторно создаваться они уже не хотят - снова ошибка [1283]
и это правильно.
Сделайте так.
1. Убедитесь сначала, что Поисковый механизм Fulltext mysql включен
ACP-->ОБЩИЕ-->КОНФИГУРАЦИЯ СЕРВЕРА-->Поиск
2. Проверьте настройки сервера MySQL
Минимум символов для индексации:
Слова, состоящие из как минимум данного количества символов будут проиндексированы для поиска. Изменить данное значение можно только путем изменения настроек сервера MySQL.

Максимум символов для индексации:
Слова, состоящие не более, чем из данного количества символов, будут проиндексированы для поиска. Изменить данное значение можно только путем изменения настроек сервера MySQL.
3. Удалите все лишние ключи.
Должно быть так
insexes.jpg
4. ACP-->ОБЩИЕ-->ОБСЛУЖИВАНИЕ-->БАЗА ДАННЫХ-->Поисковые индексы
Должно быть
Fulltext mysql (активен)
5. Создайте индексы. В результате должно получиться так
insexes_f.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
F-XIII
phpBB 1.4.1
Сообщения: 42
Стаж: 20 лет 8 месяцев
Откуда: Ростов-на-Дону
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Поисковые индексы

Сообщение F-XIII »

Sheer, спасибо за подробный ответ, буду сегодня пробовать...

1 и 2 - Точно включено и активно, индексов обоих поисковых механизмов: 0
3 - пока не могу сказать, есть лишние или нет
4 - Fulltext mysql (активен) - точно так
Должны быть еще созданы индексыpost_subject и post_content
Получается, что эти ключи должны создаваться/удаляться штатным инструментом админки, так ведь? А повторно они не создаются потому что не хватает указанных ключей или из-за присутствия лишних?
У меня другой интерфейс phpMyAdmin, но попробую разобраться...
Последний раз редактировалось F-XIII 26.08.2013 12:53, всего редактировалось 1 раз.
Silver shiny wings bathed in fire
Godly weapons speak to break the chains of darkness ...
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Поисковые индексы

Сообщение Sheer »

F-XIII писал(а):эти ключи должны создаваться/удаляться штатным инструментом админки
Да.
F-XIII писал(а):из-за присутствия лишних
Из-за того, что уже созданы. Мне удалось воспроизвести ошибку. Вручную создав индекс, а потом в админке попытавшись вновь создать поисковые индексы.
F-XIII писал(а):У меня другой интерфейс
Неважно.
insexes.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
F-XIII
phpBB 1.4.1
Сообщения: 42
Стаж: 20 лет 8 месяцев
Откуда: Ростов-на-Дону
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Поисковые индексы

Сообщение F-XIII »

Sheer, еще раз благодарю, а если ещё и есть возможность дать ссылку на какую-нить документацию, где прописаны все родные индексы/ключи таблиц, чтобы проверить, то Вам вообще цены нет)
А то раз в этой таблице ошибка, наверняка где-то еще есть ошибки или мусор...
Silver shiny wings bathed in fire
Godly weapons speak to break the chains of darkness ...
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Поисковые индексы

Сообщение Sheer »

http://www.phpbbguru.net/database/tables/

Добавлено спустя 3 минуты 14 секунд:
Ах, да...
F-XIII писал(а):на какую-нить документацию
:mrgreen: http://www.phpbbguru.net/documentation/

Main Page
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
F-XIII
phpBB 1.4.1
Сообщения: 42
Стаж: 20 лет 8 месяцев
Откуда: Ростов-на-Дону
Благодарил (а): 6 раз
Поблагодарили: 1 раз

Re: Поисковые индексы

Сообщение F-XIII »

Sheer, не поверите, но лишних ключей не оказалось и всё остальное сходится с Вашими скринами... Разве что сравнение у меня было utf_unicode_ci вместо utf_bin, но вот этот код (взят из результатов mysql_upgrader.php) мне помог это исправить:

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

# Table: 'phpbb3_posts'
ALTER TABLE phpbb3_posts 
MODIFY post_id mediumint(8) UNSIGNED NOT NULL auto_increment,
MODIFY topic_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY forum_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY poster_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY icon_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY poster_ip varchar(40) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY post_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY post_approved tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY post_reported tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY enable_bbcode tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY enable_smilies tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY enable_magic_url tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY enable_sig tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY post_username varchar(255) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY post_subject varchar(255) DEFAULT '' NOT NULL COLLATE utf8_unicode_ci,
MODIFY post_text mediumtext NOT NULL COLLATE utf8_bin,
MODIFY post_checksum varchar(32) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY post_attachment tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY bbcode_bitfield varchar(255) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY bbcode_uid varchar(8) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY post_postcount tinyint(1) UNSIGNED DEFAULT '1' NOT NULL,
MODIFY post_edit_time int(11) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY post_edit_reason varchar(255) DEFAULT '' NOT NULL COLLATE utf8_bin,
MODIFY post_edit_user mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY post_edit_count smallint(4) UNSIGNED DEFAULT '0' NOT NULL,
MODIFY post_edit_locked tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
DROP INDEX post_username,
ADD KEY post_username (post_username),
DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
phpbb3_posts - phpMyAdmin 3.5.8.1.png
Но теперь, по крайней мере, выскакивает уже другая ошибка при запуске:
SQL ERROR [ mysql4 ]
Error writing file '/tmp/STKkdmRg' (Errcode: 28) [3]
SQL
ALTER TABLE phpbb3_posts ADD FULLTEXT (post_subject), MODIFY post_text mediumtext COLLATE utf8_unicode_ci NOT NULL, ADD FULLTEXT (post_text), ADD FULLTEXT post_content (post_subject, post_text)

или такая:
SQL ERROR [ mysql4 ]
Lost connection to MySQL server during query [2013]
SQL
...


Я так понимаю, это уже не в таблице дело, а самой базе, я прав? У меня еще вызывает сомнение [ mysql4 ] - откуда 4, когда уже давно 5 версия, или это не имеет значения?
Что посоветуете?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Silver shiny wings bathed in fire
Godly weapons speak to break the chains of darkness ...
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Поисковые индексы

Сообщение Sheer »

F-XIII писал(а):Errcode: 28
Errcode 28 means No space left on device. - то есть банально на диске кончилось свободное место.
F-XIII писал(а):Lost connection to MySQL server during query
-- потеря соединения с сервером во время выполнения запроса.
Короче, пусть ваш хостер это лечит.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.

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