Поиск по сайту:  

Email:

Пароль:

Тел.: +7 (906) 724-89-01
Email: info@media-pandora.ru

 
Новый онлайн-сервис на сайте — добавление водяного знака в изображения.

MediaPandora.RU — Статьи и публикации

Поиск по сайту: изящное комбинированное решение «свой поиск+Яндекс»

Некоторые веб-разработчики (под веб-разработчиками, естественно, я имею в виду именно разработчиков, а не тех, кто конвейерным методом за полдня ставит заказчикам WordPress и называет себя при этом программистом), оказавшись перед вопросом, какой вариант поиска выбрать для сайта, сталкиваются с неразрешимой на первый взгляд дилеммой.

Дилемма заключается, с одной стороны, в стремлении предоставить в ответ на поисковые запросы посетителей максимально полные результаты, а с другой стороны — в кажущейся абсолютной несовместимости и принципиальной функциональной противоположности двух наиболее популярных вариантов — встроенного поиска по сайту в базах MySQL, которые используются повсеместно в связке с PHP, и предлагаемого российским поисковиком «Яндекс» поискового функционала для веб-мастеров.

Плюсы и минусы и того, и другого вариантов очевидны. Встроенный поиск способен найти всё, что размещено в базах данных MySQL, в следующую секунду после размещения информации, но совершенно не дружит с морфологией. В противовес ему, предоставляемый Яндексом поисковый механизм хорошо знаком с морфологией, синонимами и транслитерацией, однако появление новой информации с сайта в поиске по нему может занять недели, а то и месяцы.

Самый же главный минус предоставляемого Яндексом поиска — это его поисковая строка, которая передаёт все поисковые запросы непосредственно Яндексу сразу же после нажатия кнопки «Найти» посетителями вашего сайта. Такой вариант не устраивает большинство веб-мастеров по вполне очевидным причинам: с его помощью невозможно ни самостоятельно собрать статистику поисковых запросов (это берёт на себя Яндекс), ни как-либо видоизменить поведение алгоритма в зависимости от поискового запроса.

Строка поиска от Яндекса для веб-мастеров

Кроме того, код поисковой строки Яндекса — штука довольно громоздкая: неудивительно, ведь он сделан сверх-универсальным.

Сверх-универсальный код поисковой строки Яндекса для веб-сайтов

Между тем наиболее исчерпывающие поисковые результаты по запросу посетителей вашего сайта, как вы, наверное, уже правильно догадались, могла бы дать комбинация из двух вышеназванных вариантов. Мешает только одно: подчинённость поисковой строки Яндексу, а не нам с вами.

К счастью, Яндекс сам же и предоставил веб-мастерам отличную возможность обойти необходимость установки на сайт громоздкого модуля поисковой строки: ведь в конечном итоге вся задача этого модуля — всего лишь навсего отправить Яндексу GET-запрос вида http://yandex.ru/sitesearch?searchid=2014786&text=%EF%F0%EE%E1%EB%E5%EC%E0&web=0&l10n=ru.

С учётом этого обстоятельства первым делом избавляемся от главного препятствия — кода поисковой строки. Да, использование именно такого кода в неизменном виде является непременным условием использования предоставляемых Яндексом веб-мастеру поисковых механизмов, на мой же взгляд — с Яндекса вполне достаточно и собственного логотипа на странице поисковых результатов.

Свой код, естественно, получится у нас несколько компактнее.

А теперь начинается самое интересное.

Отправляемые такой формой запросы посетителей уже полностью — как им и положено — подконтрольны веб-мастеру. Именно последнему решать, что делать после отправки запроса посетителем.

Решать предлагаю следующим образом. Сначала записываем в базу данных поисковый запрос — для сбора статистики. Затем осуществляем поиск по базе данных — если слово набрано правильно и имеется в базе данных, то его отправитель получит самую точную и свежую информацию — а самое главное, получит её без посредничества Яндекса, который, возможно, ещё даже не проиндексировал страницы сайта с этой информацией.

Далее анализируем полученное количество результатов: если оно больше нуля, при помощи соответствующего кода, приводить который здесь считаю излишним, выдаём результаты.

Выдача поисковых результатов из базы данных веб-сайта

А если в базе данных ничего не найдено (либо по каким-то причинам веб-мастер не хочет показывать найденное) — перенаправляем отправителя поискового запроса на Яндекс: вот теперь, когда мы получили от поисковой формы всю необходимую информацию — пусть поработает, но в отличие от нашего собственного алгоритма, уже с учётом морфологии и прочих нюансов, вдруг найдёт что-нибудь — если уж не точное соответствие, так хотя бы нечто схожее. Главное, чтобы перед перенаправлением у нас в коде не было непосредственного вывода в браузер клиента.

Выдача поисковых результатов Яндексом

Другими словами, подобная схема поиска представляет собой нечто вроде двойного поискового фильтра, а вероятность выдачи результатов посетителям возрастает по меньшей мере вдвое. Именно такая схема поиска, к примеру, внедрена автором на сайте, название которого, вероятно, вы уже приметили на последнем изображении — «Стол Подарка» (это на котором можно продавать или отдавать даром всякие нужные и ненужные вещи).

 






© WEB-студия «Медиа-Пандора». Запуск сайта — 20 июля 2015 г.
Разработчик: М. Ю. Уткин.