Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Приложение 1. Формирование строки и формы запроса
Руководство по системе Яndex.Site : Настройка системы : Конфигурация (UNIX) : Приложение 1. Формирование строки и формы запроса
Previous: Настройка поискового сервера
Next: Приложение 2. Формат страниц с результатом поиска

3.1.5. Приложение 1. Формирование строки и формы запроса

При работе с Яndex'ом Web-администратор может изменить по своему вкусу и страницу запроса, и выдачу (список найденного), и оформление подсвеченного документа. Яndex имеет собственный язык формирования строки запроса и страницы результата из параметров CGI-сценария.

Формальная строка запроса состоит из операторов вида: %{attr} , разделенных логическими операторами языка запросов Яndex и имеющих следующий синтаксис:

 
Конструкция на входе   	Строка на выходе
%{attr}                	Значение_параметра_attr
%{attr:string}    	string + значение_параметра_attr
%{attr*:string}        	для каждого параметра с именем attr
			подставляется конструкция вида: 
			     '|' + string + значение_параметра_attr
%{attr=value:string}   	string , если есть параметр attr с заданным
			значением value
%{attr=value:s1:s2}	s1 , если есть параметр attr
                   	с заданным значением value, иначе s2

Пример:

Конструкция строки запроса

(%{text}) && %{qtitle:$Title } && (%{sub=*:#subtree=})

будет обрабатываться следующим образом:

вместо CGI-параметра text подставляется его значение

если есть параметр qtitle , подставляется строка '$Title ' и значение параметра qtitle

если есть несколько параметров с одинаковыми именами sub , то для каждого из них подставится конструкция вида "| #subtree= " и значение параметра sub .

По умолчанию формальная строка запроса имеет вид "%{text}" (таким образом, параметр text является единственным обязательным), сконфигурировать эту строку можно в файле ywsearch.rep (ресурс Report.ReqTrans).

Пример поисковой страницы:

поисковая страница состоит из следующих элементов:

строка запроса - текстовое поле с именем text

строка уточнения - текстовое поле с именем refine

зона поиска - флажки с именами inText, inTitle, inRef (если ничего не указано, по умолчанию поиск будет происходить по всему тексту)

раздел поиска - меню (возможен множественный выбор) с именем sub и значениями 'yandex', 'telephony', 'radio', 'news' (если ничего не указано, по умолчанию поиск будет происходить по всему серверу)

 
< FORM NAME = "search" METHOD="get" ACTION=http://www.comptek.ru/cgi-bin/yandsearch>< BR >< B > Запрос: < /B >  < INPUT TYPE=text NAME=text SIZE=20 VALUE="" MAXLENGTH=80 >< BR >< B > Уточнение:< /B > 
  < INPUT TYPE=text NAME=refine SIZE=20 VALUE="" MAXLENGTH=80 > 
< BR > 
< B > Зона поиска:< /B > 
  < INPUT TYPE=checkbox NAME=inText CHECKED > Поиск по всему тексту
  < INPUT TYPE=checkbox NAME=inTitle > Поиск в заголовках
  < INPUT TYPE=checkbox NAME=inRef  > Поиск в ссылках
< BR > 
< B > Раздел:< /B > 
  < SELECT NAME=sub MULTIPLE > 
  < OPTION VALUE=yandex > Поисковые системы
  < OPTION VALUE=telephony > Компьютерная телефония
  < OPTION VALUE=radio > Беспроводные сети
  < OPTION VALUE=news > Новости
  < /SELECT > 
< P > 
< INPUT TYPE=submit VALUE="Поиск" > 
< /FORM > 

При поиске слова 'article' в заголовках документов раздела 'Поисковые системы' будет выдана следующая строка запроса:

http://www.comptek.ru/cgi-bin/yandsearch?text=article& refine=& inTitle=on& sub=yandex

При поиске слова 'radioethernet' с уточнением 'arlan' в текстах документов раздела 'Беспроводные сети' будет выдана следующая строка запроса:

http://www.comptek.ru/cgi-bin/yandsearch?text=radiot& refine=arlan& inText=on& sub=radio

Пример страницы с результатом поиска:

страница с результатом поиска ( формируется по данным файла ywsearch.rep, если такой файл существует, иначе - по умолчанию):

 
< FORM NAME = "search" METHOD="get"  ACTION="http://www.comptek.ru/cgi-bin/yandsearch" > 
< BR > 
< B > Запрос:< /B > 
  < !-Поисковый сервер заменяет %{text} на значение параметра text -- > 
  < INPUT TYPE=text NAME=text SIZE=20 VALUE="%{text}" MAXLENGTH=80 > 
< BR > 
< B > Уточнение:< /B > 
  < !-Поисковый сервер заменяет %{refine}  на значение параметра refine -- > 
  < INPUT TYPE=text NAME=refine SIZE=20 VALUE="%{refine}" MAXLENGTH=80 > 
< BR > 
< B > Зона поиска:< /B > 
  < !-- Если есть параметр inText и его значение = on, поисковый сервер подставит CHECKED -- > 
  < INPUT TYPE=checkbox NAME=inText %{inText=on:CHECKED} > Поиск по всему тексту
  < !-- Остальные строки обрабатываются аналогично-- > 
  < INPUT TYPE=checkbox NAME=inTitle %{inTitle=on:CHECKED} > Поиск в заголовках
  < INPUT TYPE=checkbox NAME=inRef %{inRef=on:CHECKED} > Поиск в ссылках
< BR > 
< B > Раздел:< /B > 
  < !-- Если есть параметр sub и его значение совпадает с заданными, поисковый сервер подставит SELECTED -- > 
  < SELECT NAME=sub MULTIPLE > 
  < OPTION VALUE=yandex %{sub=yandex:SELECTED} > Поисковые системы 
  < OPTION VALUE=telephony %{sub=telephony:SELECTED} > Компьютерная телефония
  < OPTION VALUE=radio %{sub=radio:SELECTED} > Беспроводные сети
  < OPTION VALUE=news %{sub=news:SELECTED} > Новости
  < /SELECT > 
< P > 
< INPUT TYPE=submit VALUE="Поиск" > 
< /FORM > 

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


Руководство по системе Яndex.Site : Настройка системы : Конфигурация (UNIX) : Приложение 1. Формирование строки и формы запроса
Previous: Настройка поискового сервера
Next: Приложение 2. Формат страниц с результатом поиска


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте