Терпение - добродетель.
Умение пользоваться поиском - добродетель в квадрате.
Умение правильно задать вопрос - добродетель в кубе. © Правила
Статья написана для администраторов/пользователей vB третей линейки, описание настроек и скрины - для третей линейки.
Многие из этих настроек и функций остались неизменны для vB четвёртой линейки, однако есть и отличия. Автор статьи нЕ собирается писать обзор по поиску для vB-4, поэтому, если есть желающие подробно расписать тонкости поиска в четвёрке - велкам.
Авторские права:
Статья написана для vBsupport.org.
Вы можете использовать любые части этой статьи, если Вам нужно написать подробный мануал по использованию поиска для Ваших юзеров. Ссылка на источник - желательна.
Вы можете перепечатать эту статью целиком или частично для публикации на форуме/разделе техподдержки vBulletin. В этом случае
ссылка на источник - обязательна.
Спасибо за понимание.
Оглавление:
Внутренний поиск
I. [Админам] Настройки поиска.
II. [Пользователям] Как искать.
III. Возможные проблемы.
Внешний поиск
Полезные ссылки
= = = = = Внутренний поиск = = = = =
Аксиома: поиск в vB работает нормально.
Условие: поиск в vB работает нормально при нормальных настройках и
прямой БД
Выводы:
1. Если Вы чего-то не можете найти - переформулируйте запрос
2. Если всё-таки не работает ("не ищет") - см. пункт I. [Админам] и пункт III. [Возможные проблемы]
I. [Админам] Настройки поиска.
I. 1. Посмотрите, какой поиск включен на Вашем форуме. Для новых линеек MySQL Fulltext включен по умолчанию.
Смотреть сюда:
MySQL Fulltext предпочтительнее: быстрее + у Вас не будут разрастаться две таблицы, используемые при собственной поисковой машине.
Если Вы до сих пор используете собственный vB-поиск, рекомендуется перейти на MySQL Fulltext. Если форум большой и посещаемый, на время выполнения перехода рекомендуется закрыть форум.
I. 2. Настройки - основные настройки поиска.
Как водится, в vB есть более чем одна настройка для поиска.
Попробуем посмотреть на каждую из них внимательно, где включается и на что влияет.
В дальнейшем описании предполагается, что у Вас включен поиск MySQL Fulltext, однако для некоторых настроек будет описано отличие между работой собственной поисковой машины и MySQL Fulltext.
Админка - Основные настройки - Поиск сообщений.
Поиск включён - понятно
Минимальное время между поисками - интересная настройка. Призвана снизить нагрузку, потому что любой поиск - достаточно нагрузочная операция. Однако - как же раздражает, когда пытаешься что-то найти, а тебе в ответ - "Этот форум требует ожидания ХХ секунд до нового поиска. Вам осталось подождать ХХ секунд до нового поиска"!
Как вариант, можно немного притормозить гостей, и дать возможность пользователям нормально юзать поиск. Для этого просто включите отделение людей от роботов для поиска
Админка - Основные настройки - Настройки отделения людей от роботов - поставьте галочку в пункте "Поиск". Так же, не забудьте, Админка - Управление группами пользователей - Гости - блок "Опции группы пользователей", пункт "Отделять людей от роботов при выполнении определённых действий" - Да.
А в настройке "Минимальное время между поисками" поставьте 0, юзера Вам будут благодарны.
Либо - как вариант - запретите гостям использовать поиск.
Найденных сообщений на страницу - это понятно, не ставьте здесь слишком большое число, 20-30 вполне разумно
Максимальное количество результатов поиска - не увлекайтесь. 100, максимум 200 результатов более, чем достаточно. Если результатов поиска слишком много, пусть юзер сузит критерии, всё равно он не будет пересматривать 500 результатов
Минимальная длина индексируемых слов - об этом поговорим подробно.
MySQL Fulltext по дефолту нЕ ищет слова короче 4-х символов. И Вы не можете поменять это значение в меньшую сторону. /ну, за исключением каких-то совершенно отбитых хостеров, которые с какого-то перепугу проставили у себя другие настройки, либо если у Вас свой сервер/
Собственная поисковая машина vB - да. Тут можно поставить три символа, и поиск будет проходить. Если Вы на ходу меняете это значение, не забудьте в Админка - Обслуживание - Обновление счётчиков - выполнить "Перестроить индекс поиска". Обращаю Ваше внимание: операция грузит сервак нипадеццки)
Личные наблюдения: поиск трёх-буквенных слов нафик не нужен, кроме дурной нагрузки он ничего полезного не даёт.
Если на Вашем форуме часто используются трёхбуквенные слова, скажем, аббревиатуры, приучите юзеров ставить метки.
Автоматический поиск похожих тем - тоже подробно.
Это такое мутное место, что... ууууу.... причём "поиск похожих" - это не отдельный поисковый механизм, это дополнительная приблуда к MySQL, к движку vB отношения не имеет, народ на WP тоже бьётся головой ап стену в этом месте...
Так что если Вы хотите включить "отображение похожих тем" только из соображений "внутренняя перелинковка - хорошо для СЕО", лучше этого не делайте.
Если же Вам действительно нужно отображение похожих тем для удобства пользователей, читайте дальше. Внимательно.
Попробуем по порядку.
Поиск и запись "похожих" тем происходит в момент создания темы. "Похожесть" определяется по заголовку. При создании темы движок смотрит, есть ли заголовки с такими же словами, если есть - отмечает ИДы таких тем в специальном поле similar в таблице thread. Во вновь созданной теме будет выведен список тем с "похожими" заголовками. И здесь будут выведены только темы, созданные ранее. В обратную сторону этот поиск не работает, то есть, в старых темах это новая, "похожая", не добавится. Чтобы добавить "похожие" темы в ранее созданные темы, Админка - Обслуживание - Обновление счётчиков - Перестроить похожие темы.
Так же обратите внимание: если какие-то из тем будут переименованы, причём кардинально, в заголовке не останется ни одного старого слова - если эти темы уже записаны как "похожие", они будут продолжать выводиться в showthread как похожие, пока Вы не обновите счётчики.
При физическом удалении темы её ИД всё равно остаётся в поле similar в таблице thread, пока Вы не обновите счётчики
При обработке "похожих" тем совершаются хитрые подсчёты score - теоретически, это пункт "Критерий релевантности похожих тем" в основных настройках... практически - менять его в настройках смысла особого нет, так как в файле насмерть прописано
Code:
if ($thread['score'] > 4)
Подсчёт этот производится "на лету", каждый раз при создании новой темы, и нигде не хранится.
На score влияет длина слов, количество слов в заголовке и количество похожих слов в разных заголовках. То есть, темы, у которых совпадает более одного длинного слова в заголовке, выводятся в списке "похожих" без особых проблем.
С короткими словама возможны разные казусы...
вот скрин из ПМА:
Все темы созданы в одном разделе, у всех в заголовках присутствует слово "темо", ни одна из них не выводится в "списке похожих" - у них score 2 с копейками.
Причём, что забавно, пока этих тем было две-три, они выводились. Когда их стало больше, их score упал и выводиться они перестали.
Выводы делайте сами... для себя я решила, что вправить файл - проще, чем отвечать юзерам на вопросы, почему темы не показываются.
Файл includes/functions_search.php, где-то в районе 374 строки, если сменить эту 4 на 2 (можно и 1) - "похожие" темы будут находиться активнее)
Админка - Основные настройки - Опции поиска сообщений (встроенный поиск форума)
Пункт "
Слова, обязательно индексируемые поиском" имеет силу, только если Вы используете собственную поисковую машину vB. Если у Вас включен поиск MySQL Fulltext - пропустите этот пункт.
Пункт "
Разрешить маски при поиске" - Да, разрешайте юзерам использовать * при поиске. В русском (украинском, белорусском...) языке с его склонениями, спряжениями, временами и родами вбивать в поиск все возможные словоформы терпения может и не хватить; а вот заменить окончание звёздочкой и получить выдачу всех словоформ сразу - вполне грамотный подход.
Обратите внимание: вариант *се* => по
серебренный будет в выдаче поиском только при использовании собственной поисковой машины vB. Ну а вариант се* =>
сервер,
сегодня,
седло будет и при MySQL, и при собственном поиске.
Админка - Основные настройки - Опции релевантности поиска (встроенный поиск форума)
Эта настройка касается только встроенного поиска. Можете с ней не заморачиваться.
По основным настройкам это - всё. Однако... не расслабляйтесь! Есть ещё несколько моментов.
I. 3. Настройки - дополнительные настройки поиска.
Админка - Разделы и модераторы - Управление разделами.
Открываем на редактирование любой раздел.
Блок "Новые сообщения", пункт "Индексировать новые сообщения в поиске". При установленном "Нет" темы и сообщения из этого раздела не будут попадать в выдачу, причём ни в какую: ни при поиске текста заголовка/поста - "Извините, нет совпадений. Попробуйте указать другие ключевые слова", ни из профиля "найти все сообщения пользователя".
Но в "Новых сообщениях" темы из этого раздела выводиться будут.
Админка - Разделы и модераторы - Права в разделах.
Откройте на редактирование группу в любом разделе
Блок "Разрешения поиска по форуму" - Может искать в разделе. При выставленном Нет темы из этого раздела не будут выводиться юзерам этой группы при просмотре "Новых сообщений" (или "Сообщений за день"). Так же будет недоступен и поиск по тексту заголовка/поста
Админка - Основные настройки - Профиль пользователя, пункт "Показывать последнее сообщение в профиле?" Прочитайте, там написано, что включение этой опции изрядно грузит сервер. От себя добавлю, что смысла в этой фишке слишком мало, чтобы ею грузить сервак; кроме того, по неведомой мне причине, она иногда откровенно глючит.
Админка - Группы пользователей - Управление группами пользователей
Блок "
Разрешения поиска по форуму"
Пункт "
Может использовать логический поиск" - обратите внимание на комментарий, "Может быть применён только при включенном полном поиске текста" (собственно, при включенной собственной поисковой машине этого пункта просто нет в настройках) - подробно.
"Да" в этой настройке даёт возможность:
- искать по маске, то есть, с использованием звёздочки *
- искать словосочетания
"Нет" в этой настройке:
- не позволит использовать *
- при вводе словосочетания в поиск в выдаче будут результаты для каждого из слов словосочетания отдельно
Метки
Админка - Основные настройки - Параметры использования меток
Все настройки здесь достаточно просты и не нуждаются в отдельных пояснениях.
Однако считаю необходимым обратить Ваше внимание вот на что...
Метки - афигенно шикарный механизм, позволяющий расширять поиск. Этот механизм с лихвой компенсирует выключение "поиска похожих тем", практически не создаёт никакой дополнительной нагрузки; позволяет юзерам быстро получить список тем по какому-то смысловому критерию.
Разумеется, только в том случае, если метки на Вашем форуме проставлены осмысленно.
Если же у Вас метки созданы по принципу "чтобы было", если Вы используете их не для удобства юзеров, а для всё той же пресловутой дополнительной перелинковки из соображений сеонизЬма - они превращаются в ненужный и неиспользуемый юзерами хлам.
Вдумайтесь, какова смысловая ценность меток
кто
что
чтобы
тот
этот
где
все
и прочая
галиматья служебные слова? Иной раз ткнёшься в облако меток на форуме, а оно всё засрано, прошу простить за слово, такими вот "метками"... тьфу...
[продолжение следует...]