Клуб Яндекс.Поиска для сайта

Поисковый запрос по умолчанию

Королев Михаил
16 июня 2014, 16:21

Можно ли в код размещения я.поиска подставить запрос по умолчанию? 

Т.е. чтобы поисковая страница сайта открывалась сразу с результатами.

 

Дело в том что на сайте существует специфический поиск, который на той же странице хотелось бы дополнить поиском по материалам сайта, расположив на странице результатов выдачу разных поисков отдельными блоками. 

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

9 комментариев
Подписаться на комментарии к посту
Вульбрун Дмитрий
16 июня 2014, 16:27

Можете просто на страницах вашего сайта формировать ссылки, которые будут вести на страницу с результатами поиска.

УРЛ страницы с результатами поиска должен содержать ваш searchid (ID поиковой плозадки) и параметр text. Остальные параметры необязвтельны. Коды форм и результатов отслеживают эти параметры в урле.

Проще всего просто ввести запрос в форме поиска, взять полученный урл и просто заменить значение параметра text на то, которое нужно вам. 

Королев Михаил
16 июня 2014, 16:42

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

Вульбрун Дмитрий
16 июня 2014, 16:45

Нет, без параметров searchid и text ничего не будет работать. Инициализация результатов поиска просто не произойдет. И эту схему лучше не менять, поскольку так надежнее.

Скажите, а добавить еще один cgi-параеметр - проблема?

Вульбрун Дмитрий
16 июня 2014, 16:49

А.

А в какую страницу вы хотите зашить параметр? В страницу, на которой вы будете размещать ссылку на страницу результатов поиска по определенному запросу? Или в страницу с результатами? Мне кажется, что речь идет о варианте №1.

Королев Михаил
16 июня 2014, 18:41

Я бы хотел зашить параметр на странице результатов поиска, так что речь о варианте 2.

Т.о. на всех страницах сайта есть поисковая форма, ведущая на страницу результатов, где отображается результат спец-поиска и ниже результат поиска по сайту яндексом, типа "нашлось на сайте"

 

Передавать один и тот же параметр со всех страниц на одну, можно но не самое оптимальное решение. имхо. Удобнее эту цифру зашить в код вставки виджета

 

Вульбрун Дмитрий
17 июня 2014, 10:22

К сожалению, в код вставки виджета зашить ее не получится. Для этого нужно много чего переделать в архитектуре поискового интерфейса. Так что этот вариант отпадает.

Можно попробовать сделать редирект на эту же страницу при отсутствии параметра searchid в урле. И при редиректе добавить этот параметр. Займет буквально 1 строчку JS на клиенте или ту же одну на стороне сервера (php, например). И на каждой новой такой странице вам нужно будет только поменять значение перемернно searchid. Только редирект нужно делать без энкодинга, иначе поломается кодировка поискового запроса, написанного на кириллице. 

Королев Михаил
16 июня 2014, 16:53

Еще один параметр добавить можно, но не хотелось бы, ибо это очевидно идентификатор сайта/поиска и он будет всегда неизменен.

Менять же имя параметра поиска уже используемое на сайте - удородает задачу установки дополнительного поиска. Как вариант мождно рассмотреть вызов поиска после первой загрузки страницы. Есть какие-нибудь JS - события к которым можно привязаться и указать нужные параметры при этом?

Вульбрун Дмитрий
16 июня 2014, 17:00

Ну после загрузки станицы генерится два события: событие готовности DOM формы поиска и событие готовности DOM результатов поиска (перед отрисовкой результатов).

Подробнее про них есть в мастер-классе tech.yandex.ru/events/webinars/pds_2

Королев Михаил
16 июня 2014, 17:04

да, это видел, почему и спросил. 

По готовности формы можно ее заполнить и послать событие (какое?) запуска поиска?

которое не перезагрузит страницу целиком, а лишь получит результаты на открытую страницу