Релевантный поиск на wordpress с помощью Sphinx
Друзья, за последние пару недель по мимо работы над PostPR.ru (о внедрении новых сервисов я уже говорил) я также усилено работаю над улучшением блога pervushin.com. За это время на блоге появилось несколько новых «вещичек», некоторые из которых Вам видны, а некоторые визуально не заметны, но поверьте они благоприятно воздействуют на работу блога.
Все нововведения описывать в одном посте не буду (каждой «фишке» свой пост!). Тем более, что для показа некоторых из них требуется наличие примеров в виде статистики, а на сбор статистики требуется время.
Сегодня же я хочу рассказать об одном из таких нововведений, которое не требует какой-либо статистики. Это поиск Sphinx.
Многие из Вас знают, что встроенный в wordpress поиск выдает совершенно не релевантные запросу результаты. Именно по этой причине до последнего времени у меня стоял поисковик Google. В принципе он меня устраивал во всем. Выдача релевантная, посты мои в индекс влетают достаточно быстро, нагрузки на сервер никакой, чего еще для счастья надо?
А для счастья нужен свой, «родной» поиск. Чтоб в своем дизайне располагался, чтоб за сведениями к другим серверам не обращался, чтоб ты лично мог делать с ним все, что тебе заблагорассудится.
О поиске sphinx я слышал довольно давно, тем более, что ему уже более 10 лет. Но плагин для wordpress на глаза мне попался только сейчас, когда я задумался о смене поисковика, хотя плагину уже более 3-х лет.
Рассказывать подробно о том, что такое sphinx смысла не имеет. В сети уже достаточно различных статей и презентаций на эту тему. Ну а коротенько, пожалуйста: sphinx — это поисковый сервер, невероятно шустрый и, что не маловажно, выдает релевантные результаты.
Настраивать такой сервер рядовому блоггеру довольно сложно, потому для нас с вами реализовали плагин для wordpress sphinx search.
Этот плагин, по мимо простого поисковика выполняет ряд дополнительных функций, которые благотворно влияют на seo блога и на просматриваемость страниц посетителями, потому что имеет в своем арсенале блоки релевантных, последних и ТОП поисковых запросов, которые можно поместить в боковую панель, например.
Установка плагина sphinx search
Установка и активация плагина проходит как обычно. Скачиваете архив (он здесь), распаковываете и забрасываете на сервер в папку wp-content/plugins/. Или производите установку из админ панели блога в разделе «Плагины->Добавить плагин». После чего в разделе «Плагины->Установленные» активируем sphinx search.
После активации в разделе «Настройка» появится новый пункт sphinx search, в котором кроются настройки поисковика. В настройке тоже нет ничего сложного. Плагин имеет так называемый wizard, т.е. мастер установки по нашему. Мои действия в этом плане сводились лишь к нажатию кнопки «Save & Continue». В поля для заполнения вводить ничего не приходилось, плагин сам необходимые пути прописывал.
На каком-то этапе правда вывалилась ошибка. Но открыв тикет в биллинг системе моего хостинга, буквально через пять минут поступил ответ от тех.поддержки и ошибка была устранена. Вот именно поэтому я рекомендую Вам хостинг от FastVPS, кстати и скидки для читателей pervushin.com предоставляются ;), сплошная паимаишь выгода :).
Настройка релевантной выдачи
После установки плагина, я добавил в шапку блога (посмотрите на верх) форму поиска от сфинкса. Для этого необходимо в нужное место шаблона добавить код:
<?php if(function_exists('ss_search_bar')) echo ss_search_bar(true); ?> |
Форма будет выглядеть примерно вот так:
Настроить внешний вид формы можно в файле templates/sphinx_search_bar.htm. Я, например, прописал стили поля и кнопки от своей формы обратной связи.
Описывать процесс «дизайнирования» формы не буду. О другом хотел рассказать, а именно о релевантности. У сфинкса с этим все в порядке. Но разработчики плагина пошли дальше. Они добавили функцию релевантной, но более свежей, с последними датами выдачи материалов.
Функция конечно хороша, ну там для новостных сайтов, но не для моего блога. Дело в том, что таким образом выдача уже не выглядит релевантной. Так я например забивал слово «кнопки» и ожидая в выдаче пост «Кнопки социальных сетей«, получал посты имеющие отношения к этим кнопкам лишь косвенное, просто потому что упоминал их в этих постах.
Все бы ничего, но функцию эту разработчики установили по умолчанию и в опциях плагина этого не исправить. Решение нашлось довольно быстро. После нескольких часов поисков необходимой функции в файлах плагина, я таки решил связаться с разработчиками, которые дали мне решение.
Итак, если вы хотите просто релевантный поиск на сайте, тогда открываем в редакторе файл php/sphinxsearch_frontend.php. Именно в этом файле указан режим по умолчанию. Находим строчку $sphinx->SetSortMode(SPH_SORT_TIME_SEGMENTS, ‘date_added’); и меняем в ней date_added на relevance.
Затем в файлах шаблона (templates/sphinx_search_bar.htm; templates/sphinx_search_panel.htm; widgets/search-sidebar.php) ставим опцию relevance по умолчанию тегом checked=»checked». Примерно вот так:
<input type="radio" id="search_sortby_rel" name="search_sortby" value="relevance" <?php echo $search_sortby_relevance; ?> checked="checked" /><label for="search_sortby_rel">Relevance</label> |
После этих не многочисленных операций поиск будет работать как «швейцарские часы» :). Надеюсь посетители сайта будут пользоваться этим поиском чаще, чем googl’овским.
Удачи Вам друзья и релевантного поиска!
Сладкое на сегодня: очередной рекламный ролик с юморцой. Да уж, пропажа пива из холодильника — это ужас :). Наслаждайтесь.
А я вот впервые слышу об этом поисковике. Идея очень понравилась — сделать «собственный» поисковик для блога.
«открыв тикет в биллинг системе моего хостинга» — это сильно. Особенно для новичков, как я ))) А за плагин и описание настроек спасибо. Надо попробовать.
Тикет — это внутренняя система сообщений, напоминает гостевую книгу, но эти сообщения никому не доступны кроме вас лично и администраторами сайтов, где эта система имеется. Через нее делаются запросы, в том числе в Fastтех.поддержку.
А биллинг — это вроде как страница оплаты, но в FastVPS она больше напоминает личный кабинет с различными функциями.
Плагин конечно попробуйте, нагрузка на сервер минимальна, а поиск просто великолепен.
Надо пробовать.
Настройка описана подробная, осталось установить и испытать.
Спасибо за плагин.
Релевантность поиска — это очень важно! Наверное это хороший плагин. Хотя я еще знаю, что можно использовать поиск от ЯНдекса на своем блоге:)
Доброго дня. Не получается настроить плагин
Выдает :
Installation: Sphinx installation error, try to run this command manually in Terminal:
Command: ./configure —with-mysql —prefix=/home/www/мойсайт.com/wp-content/uploads/sphinx 2>&1 at the directory:/home/www/мойсайт.com/wp-content/uploads/sphinx/sphinx-0.9.9
try running it with sudo if it doesn’t work
Запускал это , выдало :
checking build environment—————————checking for a BSD-compatible install… /usr/bin/install -cchecking whether build environment is sane… yeschecking for a thread-safe mkdir -p… /bin/mkdir -pchecking for gawk… nochecking for mawk… mawkchecking whether make sets $(MAKE)… nochecking whether to enable maintainer-specific portions of Makefiles… nochecking for compiler programs——————————checking whether to compile debug version… nochecking for gcc… nochecking for cc… nochecking for cl.exe… noconfigure: error: no acceptable C compiler found in $PATHSee `config.log’ for more details.Что не так?
Боюсь я не смогу Вам помочь. Обратитесь к хостеру, адекватные должны помочь установить сфинкса. Мне мои помогли.
Очевидно, Сфинкс попытался собраться из исходников, а у вас нет соответствующего тулчейна (компилятор, линкер и т.д.) для этого.
Либо возьмите готовый бинарь, либо сперва поставьте тулчейн.
(А вообще, смотрю я на это — блин, 0.9.9 — это ужасно старая версия. Мы её уже не поддерживаем. Если найдётся критическая ошибка — решением номер раз будет переход на свежую версию)